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匹配中文的正则表达式
May 11 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
Nov 15 Python
使用Python读取安卓手机的屏幕分辨率方法
Mar 31 Python
django输出html内容的实例
May 27 Python
python实现抖音视频批量下载
Jun 20 Python
python实现控制台打印的方法
Jan 12 Python
Python 实现输入任意多个数,并计算其平均值的例子
Jul 16 Python
浅谈Python_Openpyxl使用(最全总结)
Sep 05 Python
自适应线性神经网络Adaline的python实现详解
Sep 30 Python
python将数据插入数据库的代码分享
Aug 16 Python
python爬虫智能翻页批量下载文件的实例详解
Feb 02 Python
利用python做数据拟合详情
Nov 17 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 STRING 陷阱原理说明
2010/07/24 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
javascript String 对象
2008/04/25 Javascript
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
2009/07/14 Javascript
Javascript 日期处理之时区问题
2009/10/08 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
chrome浏览器如何断点调试异步加载的JS
2016/09/05 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
Angular2 http jsonp的实例详解
2017/08/31 Javascript
node.js操作MongoDB的实例详解
2017/10/11 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
深入理解Vue 的钩子函数
2018/09/05 Javascript
Vue Components 数字键盘的实现
2019/09/18 Javascript
vue渲染方式render和template的区别
2020/06/05 Javascript
js实现跳一跳小游戏
2020/07/31 Javascript
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
批处理与python代码混合编程的方法
2016/05/19 Python
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
matplotlib在python上绘制3D散点图实例详解
2017/12/09 Python
详解python多线程、锁、event事件机制的简单使用
2018/04/27 Python
python实现转圈打印矩阵
2019/03/02 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
树莓派使用USB摄像头和motion实现监控
2019/06/22 Python
python help函数实例用法
2020/12/06 Python
辞旧迎新演讲稿
2014/09/15 职场文书
企业介绍信范文
2015/01/30 职场文书
幼儿教师三分钟演讲稿
2019/06/21 职场文书
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
解决 Redis 秒杀超卖场景的高并发
2022/04/12 Redis
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏