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 相关文章推荐
用实例说明python的*args和**kwargs用法
Nov 01 Python
Python二分查找详解
Sep 13 Python
Python如何获取系统iops示例代码
Sep 06 Python
解决PyCharm同目录下导入模块会报错的问题
Oct 13 Python
Python发展简史 Python来历
May 14 Python
python实现批量nii文件转换为png图像
Jul 18 Python
Python 内置函数globals()和locals()对比详解
Dec 23 Python
python操作gitlab API过程解析
Dec 27 Python
python爬取天气数据的实例详解
Nov 20 Python
Python爬虫之Selenium下拉框处理的实现
Dec 04 Python
利用python进行文件操作
Dec 04 Python
PyTorch梯度裁剪避免训练loss nan的操作
May 24 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
一步一步学习PHP(5) 类和对象
2010/02/16 PHP
PHP写日志的实现方法
2014/11/05 PHP
php封装的page分页类完整实例
2016/10/18 PHP
jquery实现瀑布流效果分享
2014/03/26 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
jquery 取子节点及当前节点属性值的方法
2014/08/24 Javascript
node.js中的fs.ftruncate方法使用说明
2014/12/15 Javascript
在Node.js应用中读写Redis数据库的简单方法
2015/06/30 Javascript
浅谈$('div a') 与$('div>a')的区别
2016/07/18 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
解读ES6中class关键字
2017/11/20 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
小程序指纹验证的实现代码
2018/12/04 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
python传递参数方式小结
2015/04/17 Python
使用Python 自动生成 Word 文档的教程
2020/02/13 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
基于Tensorflow一维卷积用法详解
2020/05/22 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
营销总经理的岗位职责
2013/12/15 职场文书
如何写一封打动人心的求职信
2014/02/17 职场文书
酒店采购员岗位职责
2014/03/14 职场文书
党员公开承诺书
2014/03/25 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
2014年大学班级工作总结
2014/11/14 职场文书
导游词之山东八大关
2019/12/18 职场文书
flex弹性布局详解
2022/03/20 HTML / CSS
P站美图推荐——变身女主角特辑
2022/03/20 日漫
基于Python实现股票收益率分析
2022/04/02 Python
python实现双向链表原理
2022/05/25 Python