Python 之 Json序列化嵌套类方式
作者:IT-蓝月 发布时间:2021-05-25 18:11:44
标签:Python,Json,序列化,嵌套类
想要用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)
执行效果:
很多人会说,第五种才是我想要的,前面四种不是标准的json数据,刚开始确实是这样认为的,但是。。。
1.如果你处理的两个嵌套类是数据库的呢? * 如一对多的关系型数据库,method3不是一个很好的选择么?
2.如果你处理的两个嵌套类是包含关系呢?method2不是一个很好的选择么?
来源:https://blog.csdn.net/ITlanyue/article/details/81207104
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 主题介绍pyecharts里面有很多的主题可以供我们选择,我们可以根据自己的需要完成主题的配置,这样就告别了软件的限制,可以随意的发挥自己的
- 本文实例讲述了python中sys.argv参数用法。分享给大家供大家参考。具体分析如下:在学python的过程中,一直弄不明白sys.ar
- 如果你正从你的用户那里收集信息, 没有比网页表单更简单和直接的办法了。一份有良好设计的表单可以提供有价值的信息, 相反, 他们有可能把用户吓
- 一、前言假设现在有一个应用场景,需要对文件系统进行监控,发生变化时产生日志,对新增的文件做一些相应的操作。比如说应用到我们之前的音乐高潮提取
- int 数字类型class int(object): """ int(x=0) -&g
- 本文实例讲述了python复制文件的方法。分享给大家供大家参考。具体分析如下:这里涉及Python复制文件在实际操作方案中的实际应用以及Py
- 1、查找表结构,判断要加入的列是否已存在2、如果不存在,则执行添加 CREATE PROCEDURE `mysql_sp_add_
- <ScriptRUNAT=SERVERLanguage=VBScript>SubApplication_OnStar
- 前言:今天要总结的是如何用程序来实现短信发送功能。但是呢,可能需要我们调用一些api接口,我会详细介绍。都是自己学到的,害怕忘记,所以要总结
- 亮度调整非线性亮度调整:对于R,G,B三个通道,每个通道增加相同的增量。线性亮度调整:利用HSL颜色空间,通过只对其L(亮度)部分调整,可达
- <style> *{position:absolute;} #panel *{border:1px so
- Python2.7对于中文编码的问题处理的并不好,这几天在爬数据的时候经常会遇到中文的编码问题。但是本人对编码原理不了解,也没时间深究其中的
- 背景简介ImageAI是一个面向计算机视觉编程的Python库,支持最先进的机器学习算法。主要图像预测,物体检测,视频对象检测与跟踪等多个应
- String Types(字符串类型)字符串类型Mysql支持多种字符串类型的变体。 这些数据类型在4.1和5.0版本中有较大的变化, 这使
- 使用python进行图片处理,现在需要读出图片的任意一块区域,并将其转化为一维数组,方便后续卷积操作的使用。 下面使用两种方法进行处理:co
- 平时写得多的是python,最近看了一点go,今天碰到了一个问题,和大家分享一下package mainimport "fmt&q
- 要点说明在绘制散点图的时候,通常使用变量作为输入数据的载体。其实,也可以使用字符串作为输入数据的存储载体。下面代码的data = {“a”:
- 背景每次加载数据都要重新Load,想通过加入的注解方式开发缓存机制,每次缓存不用写代码了缺点:目前仅支持一个返回值,虽然能弄成字典,但是已经
- 服务器现在同时输出json和xml两种数据,取决于服务程序和页面之间的约定。在程序遇到问题的时候会返回错误信息,也按照相同的约定会返回jso
- 代码片段一:alert(Function instanceof Object); // truealert(Object instanceo