Python中的JSON模块常用方法汇总
在Python中,JSON是一种非常常用的数据格式,使得数据的序列化和反序列化变得轻松简单。
JSON模块简介
JSON模块是Python的标准库,可以通过import json的方式进行引用。JSON模块主要提供四个方法,分别是:dump、dumps、load、loads。
1. dump方法
dump方法可以将Python中的dict类型对象直接序列化为JSON格式的数据,并写入到文件中。
语法:
json.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)
其中,
- obj:需要序列化的Python对象。
- fp:文件对象,可以是以写模式打开的文件对象或者是类文件对象。需要改成二进制模式打开文件对象,例如:open('test.json','wb')。
- skipkeys:默认值为False,如果出现obj中的key不是str类型(例如:int, float),则会抛出异常。如果设置为True,则会跳过这个key。
示例:
import json
data = {'name': '小明', 'age': 18, 'gender': 'man'}
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False)
上述代码将Python的dict对象data序列化为JSON格式的数据并写入到data.json文件中。
2. dumps方法
dumps方法也可以将Python中的dict类型对象直接序列化为JSON格式的数据,但是不会写入到文件,而是将序列化后的JSON格式的数据作为字符串返回。
语法:
json.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)
其中,
- obj:需要序列化的Python对象。
- skipkeys:默认值为False,如果出现obj中的key不是str类型(例如:int, float),则会抛出异常。如果设置为True,则会跳过这个key。
示例:
import json
data = {'name': '小红', 'age': 20, 'gender': 'woman'}
jsonStr = json.dumps(data,ensure_ascii=False)
print(jsonStr)
3. load方法
load方法可以将存储在文件中的JSON格式的数据,反序列化成Python的dict或list类型对象。
语法:
json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
其中,
- fp:文件对象,可以是以读模式打开的文件对象或者是类文件对象。
- object_hook:自定义函数,会在每一个数据项被转换成对象时调用(例如:Python中的dict或list),可以将转换后的对象做一个修改。
示例:
import json
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
print(data)
上述代码将之前生成的data.json文件中的数据读取出来并反序列化为Python的dict对象。
4. loads方法
loads方法可以将字符串类型的JSON格式的数据,反序列化成Python的dict或list类型对象。
语法:
json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
其中,
- s:字符串类型的JSON格式的数据。
- object_hook:自定义函数,会在每一个数据项被转换成对象时调用(例如:Python中的dict或list),可以将转换后的对象做一个修改。
示例:
import json
jsonStr = '{"name": "小李", "age": 22, "gender": "man"}'
data = json.loads(jsonStr)
print(data)
上述代码将JSON格式的字符串jsonStr反序列化为Python的dict类型对象。
总结
在使用Python处理JSON格式数据时,常用的方法有:dump、dumps、load、loads。使用这些方便的API,可以轻松地在Python中进行JSON格式数据的序列化和反序列化。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中的json模块常用方法汇总 - Python技术站