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