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中List.index()方法的使用教程
May 20 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
Nov 11 Python
Python批处理删除和重命名文件夹的实例
Jul 11 Python
tensorflow 中对数组元素的操作方法
Jul 27 Python
Python爬虫之pandas基本安装与使用方法示例
Aug 08 Python
Python提取频域特征知识点浅析
Mar 04 Python
Python基于opencv实现的简单画板功能示例
Mar 04 Python
Python2和Python3的共存和切换使用
Apr 12 Python
Python基础之列表常见操作经典实例详解
Feb 26 Python
python实现IOU计算案例
Apr 12 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
Jul 23 Python
Python编程根据字典列表相同键的值进行合并
Oct 05 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中的登陆login
2007/01/18 PHP
php foreach 使用&(与运算符)引用赋值要注意的问题
2010/02/16 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
JavaScript多线程的实现方法
2007/05/08 Javascript
Prototype 学习 工具函数学习($w,$F方法)
2009/07/12 Javascript
js用Date对象的setDate()函数对日期进行加减操作
2014/09/18 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
NodeJS连接MongoDB数据库时报错的快速解决方法
2016/05/13 NodeJs
基于JS代码实现图片在页面中旋转效果
2016/06/16 Javascript
jQuery模仿京东/天猫商品左侧分类导航菜单效果
2016/06/29 Javascript
微信小程序 MINA文件结构
2016/10/17 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
Vue2.0表单校验组件vee-validate的使用详解
2017/05/02 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
jquery.uploadView 实现图片预览上传功能
2017/08/10 jQuery
JavaScript 中的 this 工作原理
2018/06/20 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
jQuery实现回到顶部效果
2020/10/19 jQuery
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
详解Python的Django框架中的templates设置
2015/05/11 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
Python监控服务器实用工具psutil使用解析
2019/12/19 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
美体小铺加拿大官方网站:The Body Shop加拿大
2016/10/30 全球购物
会计专业毕业生自我评价
2013/09/25 职场文书
平民服装店创业计划书
2014/01/17 职场文书
公司领导班子对照材料
2014/08/18 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android
无线电知识基础入门篇
2022/02/18 无线电
如何Tomcat中使用ipv6地址
2022/05/06 Servers