Python 之 Json序列化嵌套类方式


Posted in Python onFebruary 27, 2020

想要用python自已手动序列化嵌套类,就要明白两个问题:

1.Json是什么?

2.Json支持什么类型?

答案显而易见

Json就是嵌套对象

Json在python中支持列表,字典(当然也支持int,string.....,不过说这个也没多大必要)

很好,等等,列表,字典?我们在python中学过列表,字典,字典列表,列表字典,字典字典,那,我们可不可以把类对象转化为这些呢?

我可以很确定的告诉你,可以,并且,嵌套类都可以!!!

下面就来实战:

from flask import Flask
import json
 
app = Flask(__name__)
 
class City():
  def __init__(self,country,provider):
    self.country = country
    self.provider = provider
 
 
class School():
  def __init__(self,country,provider,name,nums):
    self.city = City(country,provider)
    self.name = name
    self.nums = nums
 
 
@app.route('/method0')
def method0():
  school = School('china','shanxi','wutaizhongxue','2000')
 
  s_temp0 = [school.city.country,school.city.provider,school.name,school.nums]
  return json.dumps(s_temp0)
 
 
@app.route('/method1')
def method1():
  school = School('china','shanxi','wutaizhongxue','2000')
 
  s_temp1 = {'country':school.city.country,'provider':school.city.provider,'name':school.name,'nums':school.nums}
  return json.dumps(s_temp1)
 
 
@app.route('/method2')
def method2():
  school = School('china','shanxi','wutaizhongxue','2000')
 
  s_temp2 = [{'country':school.city.country,'provider':school.city.provider},school.name,school.nums]
  return json.dumps(s_temp2)
 
 
@app.route('/method3')
def method3():
  school = School('china','shanxi','wutaizhongxue','2000')
 
  s_temp3 = {'city':[school.city.country,school.city.provider],'name':school.name,'nums':school.nums}
  return json.dumps(s_temp3)
 
 
@app.route('/method4')
def method4():
  school = School('china','shanxi','wutaizhongxue','2000')
 
  s_temp4 = {'city':{'country':school.city.country,'provider':school.city.provider},'name':school.name,'nums':school.nums}
  return json.dumps(s_temp4)
 
 
if __name__ == '__main__':
  app.run(debug=True)

执行效果:

Python 之 Json序列化嵌套类方式

Python 之 Json序列化嵌套类方式

Python 之 Json序列化嵌套类方式

Python 之 Json序列化嵌套类方式

Python 之 Json序列化嵌套类方式

很多人会说,第五种才是我想要的,前面四种不是标准的json数据,刚开始确实是这样认为的,但是。。。

1.如果你处理的两个嵌套类是数据库的呢?假比如一对多的关系型数据库,method3不是一个很好的选择么?

2.如果你处理的两个嵌套类是包含关系呢?method2不是一个很好的选择么?

以上这篇Python 之 Json序列化嵌套类方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python调用windows api锁定计算机示例
Apr 17 Python
SQLite3中文编码 Python的实现
Jan 11 Python
Python字符串拼接六种方法介绍
Dec 18 Python
TensorFlow平台下Python实现神经网络
Mar 10 Python
Python快速查找list中相同部分的方法
Jun 27 Python
Python3 jupyter notebook 服务器搭建过程
Nov 30 Python
python对视频画框标记后保存的方法
Dec 07 Python
使用Python3内置文档高效学习以及官方中文文档
May 19 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
Jul 04 Python
Pandas之排序函数sort_values()的实现
Jul 09 Python
python解包用法详解
Feb 17 Python
梳理总结Python开发中需要摒弃的18个坏习惯
Jan 22 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
Feb 27 #Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
Feb 27 #Python
python脚本实现mp4中的音频提取并保存在原目录
Feb 27 #Python
python列表切片和嵌套列表取值操作详解
Feb 27 #Python
Python递归实现打印多重列表代码
Feb 27 #Python
Python各种扩展名区别点整理
Feb 27 #Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
Feb 27 #Python
You might like
PHP导入Excel到MySQL的方法
2011/04/23 PHP
PHP转换IP地址到真实地址的方法详解
2013/06/09 PHP
Javascript开发包大全整理
2006/12/22 Javascript
DHTML Slide Show script图片轮换
2008/03/03 Javascript
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
js如何判断用户是否是用微信浏览器
2014/06/05 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
20分钟轻松创建自己的Bootstrap站点
2016/05/12 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
2016/07/14 Javascript
React-Native中props具体使用详解
2017/09/04 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
Jquery实现无缝向上循环滚动列表的特效
2019/02/13 jQuery
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
python文件读写并使用mysql批量插入示例分享(python操作mysql)
2014/02/17 Python
python生成随机密码或随机字符串的方法
2015/07/03 Python
在windows系统中实现python3安装lxml
2016/03/23 Python
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
Python中几种导入模块的方式总结
2017/04/27 Python
解决Django Static内容不能加载显示的问题
2019/07/28 Python
python梯度下降算法的实现
2020/02/24 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
Python中的整除和取模实例
2020/06/03 Python
用python写爬虫简单吗
2020/07/28 Python
python操作redis数据库的三种方法
2020/09/10 Python
Python调用JavaScript代码的方法
2020/10/27 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
应聘护士求职信
2014/07/21 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
家庭教育教师培训学习体会
2016/01/14 职场文书
python 爬取华为应用市场评论
2021/05/29 Python
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL