当我们想将数据以一种易于读取和存储的方式进行传输时,我们通常会使用JSON数据格式。Python中的JSON模块为我们提供了便捷的方法来操纵JSON数据。
什么是JSON模块
JSON模块是提供了编码和解码JSON数据的Python标准库。该模块提供了四个方法:dump(), dumps(), load()和loads()。
dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
- 将Python对象
obj
写入文件对象fp
中。 dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
- 将Python对象
obj
序列化为JSON格式的字符串并返回。 load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
- 从文件对象
fp
中读入JSON,并将其转换成Python对象。 loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
- 将JSON格式的字符串
s
转换成Python对象。
序列化
在Python中,将Python对象转换成JSON格式的字符串,我们可以使用json.dumps(obj)
方法。
import json
person = {
'name': 'Tom',
'age': 20,
'sex': 'male',
'address': {
'province': 'Beijing',
'city': 'Beijing'
},
'hobby': [
'basketball',
'football',
'reading'
]
}
json_str = json.dumps(person)
print(json_str)
以上代码将Python字典person
序列化成了JSON格式的字符串。输出结果如下:
{"name": "Tom", "age": 20, "sex": "male", "address": {"province": "Beijing", "city": "Beijing"}, "hobby": ["basketball", "football", "reading"]}
通过传递一个字典对象,我们可以将其JSON格式化并将其写入文件。例如:
import json
person = {
'name': 'Tom',
'age': 20,
'sex': 'male',
'address': {
'province': 'Beijing',
'city': 'Beijing'
},
'hobby': [
'basketball',
'football',
'reading'
]
}
with open('person.json', 'w') as f:
json.dump(person, f)
以上代码会将Python字典person
序列化成JSON格式并将其写入名为person.json
的文件中。
反序列化
将JSON格式的字符串转换成Python字典对象,我们可以使用json.loads(json_str)
方法。
import json
json_str = '{"name": "Tom", "age": 20, "sex": "male", "address": {"province": "Beijing", "city": "Beijing"}, "hobby": ["basketball", "football", "reading"]}'
person = json.loads(json_str)
print(type(person))
print(person)
输出结果如下:
<class 'dict'>
{'name': 'Tom', 'age': 20, 'sex': 'male', 'address': {'province': 'Beijing', 'city': 'Beijing'}, 'hobby': ['basketball', 'football', 'reading']}
通过传递JSON格式的字符串,我们可以将其转换成Python字典对象。例如:
import json
with open('person.json', 'r') as f:
person = json.load(f)
print(type(person))
print(person)
以上代码从名为person.json
的文件中读取JSON格式的字符串,并将其转换成Python字典对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:简单介绍Python中的JSON模块 - Python技术站