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使用pil生成图片验证码的方法
May 08 Python
Python通过90行代码搭建一个音乐搜索工具
Jul 29 Python
python对配置文件.ini进行增删改查操作的方法示例
Jul 28 Python
Python操作MongoDB数据库的方法示例
Jan 04 Python
Python pandas常用函数详解
Feb 07 Python
python找出完数的方法
Nov 12 Python
python使用xlrd模块读取xlsx文件中的ip方法
Jan 11 Python
Django自带日志 settings.py文件配置方法
Aug 30 Python
简单了解python filter、map、reduce的区别
Jan 14 Python
在django中form的label和verbose name的区别说明
May 20 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
Jul 14 Python
解决导入django_filters不成功问题No module named 'django_filter'
Jul 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中把stdClass Object转array的几个方法
2014/05/08 PHP
PHP使用flock实现文件加锁的方法
2015/07/01 PHP
php session的锁和并发
2016/01/22 PHP
js操作select控件的几种方法
2010/06/02 Javascript
javascript制作loading动画效果 loading效果
2014/01/14 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
使用webpack构建应用的方法步骤
2019/03/04 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
微信小程序实现轨迹回放的示例代码
2019/12/13 Javascript
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
python实现爬取千万淘宝商品的方法
2015/06/30 Python
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
python+django+sql学生信息管理后台开发
2018/01/11 Python
Django进阶之CSRF的解决
2018/08/01 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
2018/08/07 Python
pandas.cut具体使用总结
2019/06/24 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
Python绘制股票移动均线的实例
2019/08/24 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
英国马莎百货官网:Marks & Spencer
2016/07/29 全球购物
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
NBA欧洲商店(西班牙):NBA Europe Store ES
2019/04/16 全球购物
建筑文秘专业个人求职信范文
2013/12/28 职场文书
个人委托书格式
2014/04/04 职场文书
同居协议书范本
2014/04/23 职场文书
高中学生评语大全
2014/04/25 职场文书
离婚协议书范本样本
2014/08/19 职场文书
继承权公证书范本
2015/01/23 职场文书
万里长城导游词
2015/01/30 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python