Json读写(Python)

使用 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)

使用标准的path处理方法 (Python)
Install Sougou for Ubuntu