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选课系统开发程序
Sep 02 Python
Python中第三方库Requests库的高级用法详解
Mar 12 Python
Python中selenium实现文件上传所有方法整理总结
Apr 01 Python
python+opencv识别图片中的圆形
Mar 25 Python
python 监听salt job状态,并任务数据推送到redis中的方法
Jan 14 Python
Django 路由控制的实现
Jul 17 Python
python日志模块logbook使用方法
Sep 19 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
Python-jenkins模块获取jobs的执行状态操作
May 12 Python
python 读取yaml文件的两种方法(在unittest中使用)
Dec 01 Python
Python selenium模拟网页点击爬虫交管12123违章数据
May 26 Python
如何使用python包中的sched事件调度器
Apr 30 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中用header图片地址 简单隐藏图片源地址
2008/04/09 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
ThinkPHP中处理表单中的注意事项
2014/11/22 PHP
PHP自毁程序(慎用)
2015/07/09 PHP
php简单实现数组分页的方法
2016/04/30 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
PDO::exec讲解
2019/01/28 PHP
JS面向对象编程 for Cookie
2010/09/19 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
给事件响应函数传参数的四种方式小结
2013/12/05 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
2017/12/09 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
python脚本监控docker容器
2016/04/27 Python
python中根据字符串调用函数的实现方法
2016/06/12 Python
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
2019/01/07 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
django列表筛选功能的实现代码
2020/03/27 Python
django修改models重建数据库的操作
2020/03/31 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
中国宠物用品商城:E宠商城
2016/08/27 全球购物
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
机电专业体育教师求职信
2013/09/21 职场文书
行政副总岗位职责
2014/02/23 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android