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 相关文章推荐
Python3访问并下载网页内容的方法
Jul 28 Python
利用Python实现Windows定时关机功能
Mar 21 Python
Python 中迭代器与生成器实例详解
Mar 29 Python
python+django+sql学生信息管理后台开发
Jan 11 Python
Django获取该数据的上一条和下一条方法
Aug 12 Python
基于Python获取城市近7天天气预报
Nov 26 Python
pandas的相关系数与协方差实例
Dec 27 Python
对tensorflow 中tile函数的使用详解
Feb 07 Python
keras处理欠拟合和过拟合的实例讲解
May 25 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
Jun 14 Python
Python3爬虫关于识别检验滑动验证码的实例
Jul 30 Python
Python制作数据预测集成工具(值得收藏)
Aug 21 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
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
php heredoc和phpwind的模板技术使用方法小结
2008/03/28 PHP
php echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
CI框架入门示例之数据库取数据完整实现方法
2014/11/05 PHP
php伪静态验证码不显示的解决方案
2019/09/26 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
javascript 数组学习资料收集
2010/04/11 Javascript
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
jquery ajax abort()的使用方法
2010/10/28 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
Svg.js实例教程及使用手册详解(一)
2016/05/16 Javascript
AngularJs $parse、$eval和$observe、$watch详解
2016/09/21 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
Angular2环境搭建具体操作步骤(推荐)
2017/08/04 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
2017/12/26 Javascript
JavaScript文本特效实例小结【3个示例】
2018/12/22 Javascript
JS div匀速移动动画与变速移动动画代码实例
2019/03/26 Javascript
vue.js中导出Excel表格的案例分析
2019/06/11 Javascript
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
Python使用Slider组件实现调整曲线参数功能示例
2019/09/06 Python
CSS3制作圆角图片和椭圆形图片
2016/07/08 HTML / CSS
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
毕业生自我推荐
2013/11/04 职场文书
《学会待客》教学反思
2014/02/22 职场文书
安全生产实施方案
2014/02/23 职场文书
少先队学雷锋活动总结范文
2014/03/09 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
仓管员岗位职责
2015/02/03 职场文书
医院党建工作总结2015
2015/05/26 职场文书
python 中的@运算符使用
2021/05/26 Python
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS