想要用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不是一个很好的选择么?

。。。。。。

多说无益,需要你自己体会

Python 之 Json序列化嵌套类的更多相关文章

  1. python 3 json 序列化

    python 3 json 序列化 我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特 ...

  2. #华为云·寻找黑马程序员# 如何实现一个优雅的Python的Json序列化库

    在Python的世界里,将一个对象以json格式进行序列化或反序列化一直是一个问题.Python标准库里面提供了json序列化的工具,我们可以简单的用json.dumps来将一个对象序列化.但是这种序 ...

  3. Python实现JSON序列化和反序列化

    在我的应用中,序列化就是把类转成符合JSON格式的字符串,反序列化就是把JSON格式的字符串转换成类.C#的话直接用Newtonsoft.JSON就可以了,非常好用.本来以为python也会有类似的库 ...

  4. Python—使用Json序列化Datetime类型

    import json from datetime import datetime, date """ str,int,list,tuple,dict,bool,None ...

  5. python中json序列化的东东

    之所以写这个因为自己总是弄混了,容易弄错,记下来有事没事看看   序列化是指把变量从内存中变成可存储或传输的过程称之为序列化用(使用dump或者dumps),把变量内容从序列化的对象重新读到 内存里称 ...

  6. python解决json序列化时间格式

    简单实例 import json from datetime import datetime from datetime import date info = { "name": ...

  7. python处理JSON 序列化与反序列化

    #序列化 >>> import json>>> d={"key":"value"}>>> d{'key': ...

  8. wcf序列化嵌套类(如TreeNode)异常原因

    循环引用类在WCF中的传递 循环引用类在WCF中的传递问题,例如: [DataContract]    public class AB    {        public string name { ...

  9. python中json序列化时汉字变成编码的解决方式

    我们在使用json模块时,如果被序列化对象中不包含汉字,当然没有任何问题,但是有汉字会被编译成unicode码: import json dic = {","sex":& ...

随机推荐

  1. 前端要了解的seo

    一.搜索引擎工作原理 当我们在输入框中输入关键词,点击搜索或查询时,然后得到结果.深究其背后的故事,搜索引擎做了很多事情. 在搜索引擎网站,比如百度,在其后台有一个非常庞大的数据库,里面存储了海量的关 ...

  2. 1.JVM中的五大内存区域划分详解及快速扫盲

    本博客参考<深入理解Java虚拟机>这本书 视频及电子书详见:https://shimo.im/docs/HP6qqHx38xCJwcv9/ 一.快速扫盲 1. JVM是什么   JVM是 ...

  3. 基于均值坐标(Mean-Value Coordinates)的图像融合算法的优化实现

    目录 1. 概述 2. 实现 2.1. 原理 2.2. 核心代码 2.3. 第二种优化 3. 结果 1. 概述 我在之前的文章<基于均值坐标(Mean-Value Coordinates)的图像 ...

  4. 奇思妙想-java实现另类的pipeline模式

    磕叨 在公司做项目是见到前辈们写的一端任务链的代码,大概如下 Runnable task = new TaskA(new TaskB(new TaskC(new taskD()))); task.ru ...

  5. 混合开发 h5+ 沉浸式的适配

    1.需要在mainfest.json plus对象里添加 "statusbar": { "immersed": "true", " ...

  6. Worktile 进军软件开发与协作的初心与野心

    作为国内领先的企业协作工具,过去6年Worktile经历了中国SaaS跌宕起伏的蛮荒时代.当国内2C领域逐步布局成熟,巨头和资本也逐步将目光聚焦在2B这个万亿级大赛道,疫情期间和之后,都将加速企业服务 ...

  7. 050.集群管理-Prometheus+Grafana监控方案

    一 Prometheus概述 1.1 Prometheus简介 Prometheus是由SoundCloud公司开发的开源监控系统,是继Kubernetes之后CNCF第2个毕业的项目,在容器和微服务 ...

  8. 重定向 CORS 跨域请求

    TL;DR 非简单请求不可重定向,包括第一个preflight请求和第二个真正的请求都不行. 简单请求可以重定向任意多次,但如需兼容多数浏览器,只可进行一次重定向. 中间服务器应当同样配置相关 COR ...

  9. dfs 例题皇后问题

    题目描述 一个如下的 6 \times 66×6 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列  ...

  10. Java井字棋游戏

    试着写了一个井字棋游戏,希望各位能给予一些宝贵的建议. 一.棋盘类 package 井字棋游戏; public class ChessBoard { private int number; Perso ...