json格式是一种很便捷常用的数据格式,python的json宝也能很好的支持json格式文件的读取和数据处理
json.dump
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序列化为 JSON 格式化后写入文件对象fp中
- skipkeys:如果为true时,不是基本类型((``str``, ``int``, ``float``, ``bool``, ``None``)
)的字典的键会跳过,- ensure_ascii:为True时,输出保证将所有输入的非 ASCII 字符转义。否则原样输出
- check_circular:为False时,循环引用检查会被跳过
- allow_nan:为False时,在对严格 JSON 规格范围外的 float 类型值进行序列化时会抛出ValueError异常
- indent:缩进等级。默认为None,使用最紧凑的方式。如果为0、负数或“”时,采用换行符缩进,
- separators:是一个元组(item_separator, key_separator),分别表示键值对之间的分隔符和键-值之间的分隔符
- default: 被指定时,其应该是一个函数,每当某个对象无法被序列化时它会被调用。它应该返回该对象的一个可以被 JSON 编码的版本,或者抛出TypeError异常
- sort_keys:为True时,按照键的字典顺序排列
- cls:重载JsonEncoder时需要指定
json.dumps
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 序列化为 JSON 格式字符串
json.load
json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
将一个包含了json格式的文件对象反序列化为python对象
- object_hook和object_pairs_hook是用来实现自定义编码器的,不做研究
- parse_float:将与每个要解码 JSON 浮点数的字符串一同调用
- parse_int:将与每个要解码 JSON 整数的字符串一同调用
- parse_constant:将要与以下字符串中的一个一同调用:
'-Infinity'
,'Infinity'
,'NaN'
。如果遇到无效的 JSON 数字则可以使用它引发异常
json.loads
json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
将一个json字符串反序列化为 Python 对象
import json
data = {'field': 'value'}
with open("./data.json", "w") as file:
json.dump(data, fp=file)
with open("./data.json", "r") as file:
data = json.load(file)
with open("./data.json", "r") as file:
json_data = json.dumps(file.read())
with open("./data.json", "r") as file:
json_data = json.loads(file.read())