Python实现复杂对象转JSON的方法示例


Posted in Python onJune 22, 2017

本文实例讲述了Python实现复杂对象转JSON的方法。分享给大家供大家参考,具体如下:

在Python对于简单的对象转json还是比较简单的,如下:

import json
d = {'a': 'aaa', 'b': ['b1', 'b2', 'b3'], 'c': 100}
json_str = json.dumps(d)
print json_str

对于复杂对象,可以使用下面的方法来实现,比如:

import json
class Customer:
  def __init__(self, name, grade, age, home, office):
    self.name = name
    self.grade = grade
    self.age = age
    self.address = Address(home, office)
  def __repr__(self):
    return repr((self.name, self.grade, self.age, self.address.home, self.address.office))
class Address:
  def __init__(self, home, office):
    self.home = home
    self.office = office
  def __repr__(self):
    return repr((self.name, self.grade, self.age))
customers = [
    Customer('john', 'A', 15, '111', 'aaa'),
    Customer('jane', 'B', 12, '222', 'bbb'),
    Customer('dave', 'B', 10, '333', 'ccc'),
    ]
json_str = json.dumps(customers, default=lambda o: o.__dict__, sort_keys=True, indent=4)
print json_str

结果如下

[
  {
    "address": {
      "home": "111",
      "office": "aaa"
    },
    "age": 15,
    "grade": "A",
    "name": "john"
  },
  {
    "address": {
      "home": "222",
      "office": "bbb"
    },
    "age": 12,
    "grade": "B",
    "name": "jane"
  },
  {
    "address": {
      "home": "333",
      "office": "ccc"
    },
    "age": 10,
    "grade": "B",
    "name": "dave"
  }
]
Python 相关文章推荐
Python3学习笔记之列表方法示例详解
Oct 06 Python
基于Python socket的端口扫描程序实例代码
Feb 09 Python
对numpy中的where方法嵌套使用详解
Oct 31 Python
在Pycharm中执行scrapy命令的方法
Jan 16 Python
详解Python正则表达式re模块
Mar 19 Python
selenium2.0中常用的python函数汇总
Aug 05 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
Aug 05 Python
通过实例简单了解Python中yield的作用
Dec 11 Python
Python常用模块sys,os,time,random功能与用法实例分析
Jan 07 Python
windows10在visual studio2019下配置使用openCV4.3.0
Jul 14 Python
pycharm实现猜数游戏
Dec 07 Python
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
Nov 11 Python
Collatz 序列、逗号代码、字符图网格实例
Jun 22 #Python
基于Python3 逗号代码 和 字符图网格(详谈)
Jun 22 #Python
Tornado协程在python2.7如何返回值(实现方法)
Jun 22 #Python
使用python在本地电脑上快速处理数据
Jun 22 #Python
python2.7 mayavi 安装图文教程(推荐)
Jun 22 #Python
python 字符串转列表 list 出现\ufeff的解决方法
Jun 22 #Python
Python查询IP地址归属完整代码
Jun 21 #Python
You might like
分享下页面关键字抓取components.arrow.com站点代码
2014/01/30 PHP
php将日期格式转换成xx天前的格式
2015/04/16 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
浅谈PHP无限极分类原理
2019/03/14 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
详解ECharts使用心得总结
2016/12/06 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
js+canvas实现滑动拼图验证码功能
2018/03/26 Javascript
了解ESlint和其相关操作小结
2018/05/21 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
教你如何用Node实现API的转发(某音乐)
2019/09/20 Javascript
详解小程序如何动态绑定点击的执行方法
2019/11/26 Javascript
python求crc32值的方法
2014/10/05 Python
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
Python编程中的for循环语句学习教程
2015/10/14 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
基于Python列表解析(列表推导式)
2018/06/23 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
python使用matplotlib画柱状图、散点图
2019/03/18 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2020/02/16 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
Shopping happy life西班牙:以最优惠的价格提供最好的时尚配饰
2020/03/13 全球购物
进步之星获奖感言
2014/02/22 职场文书
检查接待方案
2014/02/27 职场文书
给学校的建议书范文
2014/05/15 职场文书
我的中国梦演讲稿800字
2014/08/19 职场文书
银行授权委托书范本
2014/10/04 职场文书
AngularJS实现多级下拉框
2022/03/25 Javascript
vscode内网访问服务器的方法
2022/06/28 Servers
微软Win11 全新照片应用面向 Dev预览版推出 新版本上手体验图集
2022/09/23 数码科技