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 26 Python
Python使用ConfigParser模块操作配置文件的方法
Jun 29 Python
PyCharm配置mongo插件的方法
Nov 30 Python
对python的bytes类型数据split分割切片方法
Dec 04 Python
解决TensorFlow模型恢复报错的问题
Feb 06 Python
4行Python代码生成图像验证码(2种)
Apr 07 Python
Python如何对齐字符串
Jul 30 Python
详解如何在PyCharm控制台中输出彩色文字和背景
Aug 17 Python
PyTorch中的拷贝与就地操作详解
Dec 09 Python
Jupyter Notebook 远程访问配置详解
Jan 11 Python
python pygame 愤怒的小鸟游戏示例代码
Feb 25 Python
使用numpy nonzero 找出非0元素
May 14 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中如何在有限的内存中读取大文件
2013/07/02 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
php+laravel依赖注入知识点总结
2019/11/04 PHP
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
js实现点赞效果
2020/03/16 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
JS实现超级好看的鼠标小尾巴特效
2020/12/01 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
python实现点对点聊天程序
2018/07/28 Python
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
详解python数据结构和算法
2019/04/18 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
2020/07/28 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
2020/11/05 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
TripAdvisor印尼站:全球领先的旅游网站
2018/03/15 全球购物
台湾东南旅游社网站:东南旅游
2019/02/11 全球购物
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
《欢乐的泼水节》教学反思
2014/04/22 职场文书
国旗下的讲话演讲稿
2014/05/08 职场文书
校运动会广播稿300字
2014/10/07 职场文书
村党组织公开承诺书
2015/04/30 职场文书
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫
利用Redis实现点赞功能的示例代码
2022/06/28 Redis