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

import json

d = {'a': 'aaa', 'b': ['b1', 'b2', 'b3'], 'c': 100}
json_str = json.dumps(d)
print json_str
1
2
3
4
5
对于复杂对象,可以使用下面的方法来实现,比如:

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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
结果如下

[
{
"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"
}
]

最新文章

  1. 线程池深入(li)
  2. docker网络配置方法总结
  3. 【BZOJ1003】【ZJOI2006】物流运输
  4. UITableView 系列之自定义 UITableViewCell
  5. Thinkphp 3.0版本上传文件加图片缩略图实例解析
  6. GDSOI2015 task4 ACU
  7. git合并别的分支某次提交或合并
  8. struts2 中文乱码问题,自定义过滤器通用解决方法
  9. Linux权限与命令间的关系
  10. jQuery中的CSS(二)
  11. Leaflet API翻译
  12. win10与centos7的双系统U盘安装(三:win10启动项的恢复)
  13. diocp3-服务器的连接上限是到底是多少?diocp3的一个装13测试(8W连接数)
  14. iOS中UIView翻转效果实现
  15. WPF编程学习 —— 样式
  16. 【Spring学习笔记-4】注入集合类List、Set、Map、Pros等
  17. 异步任务 -- FutureTask
  18. sed备忘
  19. Linux Centos平台下安装Nginx
  20. prompt() 方法

热门文章

  1. Alpine Linux 安装 lxml Pillow 失败
  2. go语言使用go-sciter创建桌面应用(八) 窗口显示时,自动加载后端数据。
  3. MySQL中的group_concat函数的使用
  4. Spring Boot快速集成kaptcha生成验证码
  5. 使用Node.js简单创建一个服务器
  6. vue快速复习手册
  7. 工具类Base64Util
  8. .net连接Oracle
  9. RdKafka文档翻译
  10. Sublime打开txt文本乱码的解决方法