使用 python 读写 json,或者使用 json5 处理一些格式“不太正确”的 json string,比如js代码的格式。
把 python 对象编码成 json string
1import json
2
3data = { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 }
4data_str = json.dumps(data, indent=4, separators=(',', ': '))
5print(data_str)
解码 json string 到 python 对象
loads() 和 dumps() 函数 处理字符串
load() 和 dump() 函数 处理文件
1import json
2# jsonstr = '{a:1,b:2,"c":3,"d":4,"e":5}'
3jsonstr = '{"a":1,"b":2,"c":3,"d":4,"e":5}'
4json_obj = json.loads(jsonstr)
5json_obj['a']
1
第三方库:Demjson
1pip install demjson3
1import demjson3
2data = { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 }
3demjson3.encode(data)
'{"a":1,"b":2,"c":3,"d":4,"e":5}'
Demjson 可以处理一些格式“不太正确”的 json string
1jsonstr = '{a:1,b:2,"c":3,"d":4,"e":5}'
2demjson3.decode(jsonstr)
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
json5
1pip install json5
json5也可以处理一些格式“不太正确”的 json string ,并且语法要和 json 标准库一样
1import json5
2jsonstr = '{a:1,b:2,"c":3,"d":4,"e":5}'
3myobj = json5.loads(jsonstr)
json5 保存到文件
1json5.dump(myobj, open('test.json5', 'w'), indent=4)