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使用ctypes模块调用windowsapi获取系统版本示例
Apr 17 Python
Python中的Numpy入门教程
Apr 26 Python
Python列表生成器的循环技巧分享
Mar 06 Python
python+selenium+autoit实现文件上传功能
Aug 23 Python
Python处理命令行参数模块optpars用法实例分析
May 31 Python
更改Python的pip install 默认安装依赖路径方法详解
Oct 27 Python
详解python实现数据归一化处理的方式:(0,1)标准化
Jul 17 Python
python实现俄罗斯方块小游戏
Apr 24 Python
python访问hdfs的操作
Jun 06 Python
python实现简单遗传算法
Sep 18 Python
Python用Jira库来操作Jira
Dec 28 Python
python可视化之颜色映射详解
Sep 15 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使用curl发送json格式数据实例
2013/12/17 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
可兼容php5与php7的cURL文件上传功能实例分析
2018/05/11 PHP
php和html的区别点详细总结
2019/09/24 PHP
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
微信小程序 数据遍历的实现
2017/04/05 Javascript
基于BootStrap的文本编辑器组件Summernote
2017/10/27 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
JS基于Location实现访问Url、重定向及刷新页面的方法分析
2018/12/03 Javascript
浅谈webpack devtool里的7种SourceMap模式
2019/01/14 Javascript
Vue项目实现换肤功能的一种方案分析
2019/08/28 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
分析python服务器拒绝服务攻击代码
2014/01/16 Python
python开发之thread实现布朗运动的方法
2015/11/11 Python
Django中Model的使用方法教程
2018/03/07 Python
python调用其他文件函数或类的示例
2019/07/16 Python
python cv2截取不规则区域图片实例
2019/12/21 Python
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
体育教育毕业生自荐信
2013/11/21 职场文书
财务部出纳岗位职责
2013/12/22 职场文书
团日活动策划书
2014/02/01 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
支行行长岗位职责
2015/02/15 职场文书
2015年仓库工作总结
2015/04/09 职场文书
运动会广播稿100字
2015/08/19 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
八年级数学教学反思
2016/02/17 职场文书
SQL Server内存机制浅探
2022/04/06 SQL Server
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript