Python 之 Json序列化嵌套类方式

 更新时间:2020年02月27日 16:31:52   作者:IT-蓝月  
今天小编就为大家分享一篇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不是一个很好的选择么?

以上这篇Python 之 Json序列化嵌套类方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

相关文章

  • 利用Matlab提取图片曲线

    利用Matlab提取图片曲线

    一张图片,怎样才可以提取里面曲线的数据,从而协助我们完成其他需要的数据呢?本文通过示例来进行说明,文中大量的代码以及图片都可以帮助小伙伴们了解
    2021-08-08
  • python随机获取列表中某一元素的方法

    python随机获取列表中某一元素的方法

    本文主要介绍了python随机获取列表中某一元素的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • python PIL中ImageFilter模块图片滤波处理和使用方法

    python PIL中ImageFilter模块图片滤波处理和使用方法

    这篇文章主要介绍PIL中ImageFilter模块几种图片滤波处理和使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • Python实现的扫码工具居然这么好用!

    Python实现的扫码工具居然这么好用!

    二维码作为一种信息传递的工具在当今社会发挥了重要作用.从手机用户登录到手机支付,生活的各个角落都能看到二维码的存在.那你知道二维码是怎么解析的吗?有想过自己实现一个扫码工具吗?如果想的话就继续看下去吧!需要的朋友可以参考下
    2021-06-06
  • ubuntu安装jupyter并设置远程访问的实现

    ubuntu安装jupyter并设置远程访问的实现

    Jupyter Notebook是Ipython的升级版,而Ipython可以说是一个加强版的交互式Shell,本文主要介绍了ubuntu安装jupyter并设置远程访问的实现,感兴趣的可以了解一下
    2022-03-03
  • 基于Python实现一个简单的银行转账操作

    基于Python实现一个简单的银行转账操作

    这篇文章主要介绍了基于Python实现一个简单的银行转账操作的相关资料,需要的朋友可以参考下
    2016-03-03
  • python 动态加载的实现方法

    python 动态加载的实现方法

    脚本语言都有一个优点,就是动态加载,python也有这个特性。这篇文章主要介绍了python 动态加载的实现方法,需要的朋友可以参考下
    2017-12-12
  • Numpy中ndim、shape、dtype、astype的用法详解

    Numpy中ndim、shape、dtype、astype的用法详解

    这篇文章主要介绍了Numpy中ndim、shape、dtype、astype的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • python通过elixir包操作mysql数据库实例代码

    python通过elixir包操作mysql数据库实例代码

    这篇文章主要介绍了python通过elixir包操作mysql数据库,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Python OpenCV 针对图像细节的不同操作技巧

    Python OpenCV 针对图像细节的不同操作技巧

    这篇文章主要介绍了Python OpenCV 针对图像细节的不同操作,包括图像像素的说明,图像属性信息的获取与修改以及图像通道的知识(包括拆分通道和合并通道),需要的朋友可以参考下
    2021-08-08

最新评论