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 换位密码算法的实例详解
Jul 19 Python
PyQt5打开文件对话框QFileDialog实例代码
Feb 07 Python
python清除字符串中间空格的实例讲解
May 11 Python
Python实现爬虫从网络上下载文档的实例代码
Jun 13 Python
python实现彩票系统
Jun 28 Python
详解Python Matplot中文显示完美解决方案
Mar 07 Python
Python3.5装饰器典型案例分析
Apr 30 Python
Python中调用其他程序的方式详解
Aug 06 Python
python爬虫 线程池创建并获取文件代码实例
Sep 28 Python
在TensorFlow中屏蔽warning的方式
Feb 04 Python
python实现3D地图可视化
Mar 25 Python
Pycharm Git 设置方法
Sep 15 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 mkdir()定义和用法
2009/01/14 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
jQuery插件开发详细教程
2014/06/06 Javascript
推荐10 款 SVG 动画的 JavaScript 库
2015/03/24 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
JS获取html元素的标记名实现方法
2016/10/08 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
jqueryUI tab标签页代码分享
2017/10/09 jQuery
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
图解JS原型和原型链实现原理
2020/09/15 Javascript
jenkins自动构建发布vue项目的方法步骤
2021/01/04 Vue.js
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
在Gnumeric下使用Python脚本操作表格的教程
2015/04/14 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
python机器学习之神经网络(三)
2017/12/20 Python
python Selenium实现付费音乐批量下载的实现方法
2019/01/24 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
2020/08/05 Python
python 深度学习中的4种激活函数
2020/09/18 Python
scrapy-splash简单使用详解
2021/02/21 Python
为什么要做架构设计
2015/07/08 面试题
商务英语专业应届毕业生求职信
2013/10/28 职场文书
12岁生日感言
2014/01/21 职场文书
主持人婚宴答谢词
2014/01/28 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis
浅谈Python协程asyncio
2021/06/20 Python
Spring中的使用@Async异步调用方法
2021/11/01 Java/Android