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判断、获取一张图片主色调的2个实例
Apr 10 Python
Python开发实例分享bt种子爬虫程序和种子解析
May 21 Python
跟老齐学Python之大话题小函数(1)
Oct 10 Python
python使用装饰器和线程限制函数执行时间的方法
Apr 18 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
Nov 05 Python
python 编程之twisted详解及简单实例
Jan 28 Python
python3之模块psutil系统性能信息使用
May 30 Python
python 实现对文件夹中的图像连续重命名方法
Oct 25 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
Jul 26 Python
基于Python实现剪切板实时监控方法解析
Sep 11 Python
Python + selenium + crontab实现每日定时自动打卡功能
Mar 31 Python
Python3.9新特性详解
Oct 10 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
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
基于pear auth实现登录验证
2010/02/26 PHP
浅析PHP页面局部刷新功能的实现小结
2013/06/21 PHP
php环境无法上传文件的解决方法
2014/04/30 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
javascript不同页面传值的改进版
2008/09/30 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
2018/05/17 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
JS实现简单打字测试
2020/06/24 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
Python黑帽编程 3.4 跨越VLAN详解
2016/09/28 Python
Python 异常处理的实例详解
2017/09/11 Python
Python温度转换实例分析
2018/01/17 Python
python计算列表内各元素的个数实例
2018/06/29 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
wxPython实现画图板
2020/08/27 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
关于python 跨域处理方式详解
2020/03/28 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
10种CSS3实现的loading动画,挑一个走吧?
2020/11/16 HTML / CSS
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
英国最专业的健身器材供应商之一:Best Gym Equipment
2017/12/22 全球购物
拾金不昧表扬信范文
2014/01/11 职场文书
大学新生军训感言
2014/02/25 职场文书
见习期自我鉴定范文
2014/03/19 职场文书
劳资员岗位职责
2015/02/13 职场文书
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android