在敲代码时,可能会使用到load与loads、dump与dumps,但是如果对他们认识的不够清晰,那么很容易就会给你的代码带来bug,下面就总结了一下他们的使用
json
模块中有四个常用的函数:
json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
:从文件句柄fp
读取 JSON 数据并解码。json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
:将字符串s
中的 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)
:将 Python 对象obj
转换为 JSON 格式后写入文件句柄fp
。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)
:将 Python 对象obj
转换为 JSON 格式的字符串。其中,
load()
和loads()
函数是用于将 JSON 数据解码成 Python 对象,而dump()
和dumps()
函数则是用于将 Python 对象编码成 JSON 格式。下面分别对这四个函数做具体讲解。
一、load
load()
函数可以打开一个文件对象,将其读取为 JSON 格式的字符串数据,并将其转化为 Python 对象。它的语法如下:
import json with open('data.json', 'r') as f: data = json.load(f)
其中,
data.json
是需要读取的 JSON 文件。在上述代码中,使用了 Python 的with...as...
语句自动关闭文件句柄。接下来,我们可以对data
进行操作。
二、loads
loads()
函数将一个 JSON 字符串数据解码为 Python 对象,其语法如下:
import json json_str = '{"name": "Alice", "age": 18}' data = json.loads(json_str)
在上述代码中,将一个包含两个键值对的 JSON 字符串
{"name": "Alice", "age": 18}
解码为 Python 对象后赋值给data
。
三、dump
dump()
函数将 Python 对象转换为 JSON 格式并写入文件,其语法如下:
import json data = {'name': 'Alice', 'age': 18} with open('data.json', 'w') as f: json.dump(data, f)
在上述代码中,将一个包含两个键值对的字典对象
{'name': 'Alice', 'age': 18}
转换为 JSON 格式后写入到文件data.json
中。
四、dumps
dumps()
函数将 Python 对象转换为 JSON 格式的字符串,其语法如下:
import json data = {'name': 'Alice', 'age': 18} json_str = json.dumps(data)
在上述代码中,将一个包含两个键值对的字典对象
{'name': 'Alice', 'age': 18}
转换为 JSON 格式的字符串后赋值给json_str
。需要注意的是,
dump()
和dumps()
函数虽然作用相同,但参数略有不同。例如,dump()
函数需要传入一个文件句柄,而dumps()
函数则只需要将 Python 对象作为其唯一的参数即可。总之,
load()
和loads()
函数是用于将 JSON 数据解码成 Python 对象,而dump()
和dumps()
函数则是用于将 Python 对象编码成 JSON 格式。可以根据具体需求选择使用适合自己的函数。