python json
python json 模块提供了四个方法: dumps、dump、loads、load
转换映射表
python | json |
---|---|
dict | object |
list, tuple | array |
str, unicode | string |
int, long, float | number |
True | true |
False | false |
None | null |
对象=>json
dumps 和 dump 序列化方法
dumps
dumps只完成了序列化为str
>>> import json
>>> data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
>>> json_data = json.dumps(data)
>>> print(json_data)
[{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}]
dump
dump必须传文件描述符,将序列化的str保存到文件中
import json
a = {"name":"Tom", "age":23}
with open("test.json", "w", encoding='utf-8') as f:
# indent 超级好用,格式化保存字典,默认为None,小于0为零个空格
f.write(json.dumps(a, indent=4))
# json.dump(a,f,indent=4) # 和上面的效果一样
反序列化
loads和load 反序列化方法
loads
loads 只完成了反序列化,
>>> import json
>>> text = json.loads(jsonData)
>>> print(text)
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
load
load 只接收文件描述符,完成了读取文件和反序列化
- load.py
import json
with open("test.json", "r", encoding='utf-8') as f:
aa = json.loads(f.read())
f.seek(0)
bb = json.load(f) # 与 json.loads(f.read())
print(aa)
print(bb)
- 输出
{'name': 'Tom', 'age': 23}
{'name': 'Tom', 'age': 23}
拓展阅读
个人收获
json
json 是一套标准,各种语言都有字符串,都将可以将对象按照一定的对象规则转换过来。
参考资料
- json
json — JSON encoder and decoder
- 开源框架
picle
Demjson