Python-模块-json
json模块的定义
json是一种轻量级的数据交换格式。易于阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。这些特性使JSON成为理想的数据交换语言。json模块就是python处理json交换语言的首选工具。
python数据类型与json数据类型的转换关系
json模块的方法
方法 | 作用 |
---|---|
dumps | 序列化,将python数据类型转为json数据类型 |
loads | 反序列化,将json数据类型转为python数据类型 |
dump | 序列化,将python数据类型转为json数据类型,并存入文件 |
load | 反序列化,从文件中读取,并将json数据类型转为python数据类型 |
json模块实例
- 序列化字典数据
>>> import json
>>> dic_usr
{'name': 'ys', 'age': 30, 'sex': 'man'}
>>> js_usr = json.dumps(dic_usr)
>>> print(type(dic_usr),dic_usr,"\n",type(js_usr),js_usr)
<class 'dict'> {'name': 'ys', 'age': 30, 'sex': 'man'}
<class 'str'> {"name": "ys", "age": 30, "sex": "man"}
- 反序列化字典数据
>>>import json
>>>js_usr
'{"name": "ys", "age": 30}'
>>>dic_usr = json.loads(js_usr)
>>>print(type(dic_usr),dic_usr,"\n",type(js_usr),js_usr)
<class 'dict'> {'name': 'ys', 'age': 30}
<class 'str'> {"name": "ys", "age": 30}
- 序列化字典数据并存入文件
>>> dic_usr
{'name': 'ys', 'age': 30}
>>> with open("usr.json","w") as f:
... f.write(json.dumps(dic_usr))
#使用dumps方法写入文件,需要用到文件对象的write方法
>>> with open("usr.json","w") as f:
... json.dump(dic_usr,f)
#使用dump方法写入文件,指定文件对象,不需要使用文件对象的write方法
- 反序列化读取文件并存入变量
>>> import json
>>> with open("usr.json","r") as f:
... print(json.loads(f.read()))
{'name': 'ys', 'age': 30}
#使用dumps方法时,需要使用文件对象的read方法
>>> with open("usr.json","r") as f:
... print(json.load(f))
#使用dump方法时,直接读取文件对象,不需要使用文件对象的read方法 {'name': 'ys', 'age': 30}