dumps和dump都是将python对象转化为json对象,唯一的差别就是dump与文件操作结合起来了,对比二者的参数你就会发现:
dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding=‘utf-8’, default=None, sort_keys=False, **kw)
dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding=‘utf-8’, default=None, sort_keys=False, **kw)
dump函数比dumps函数多了一个参数,就是fp参数,dump函数就是通过该参数与文件操作结合在了一起。简单来说,dumps函数将python对象转化为str类型的json对象,并返回str;而dump还需要一个fp参数,也就是一个文件句柄,dump函数将python对象转化为str类型的json对象然后存入该句柄指向的文件
实例:
file = open("json.txt", "w")
print(type(file))
# 输出:
<class '_io.TextIOWrapper'>
python_dict = {
"username": "jiangnanmax",
"age": 21
}
print(json.dumps(python_dict))
# 输出:
# {"username": "jiangnanmax", "age": 21}
json.dump(python_dict, file)
file.close()
# 文件json.txt中的内容:
# {"username": "jiangnanmax", "age": 21}
loads与load的功能和dumps与dump的功能相反,是将json对象转化为python对象,而loads与load之间的差别和dumps与dump之间的差别一致
这里直接通过一个实例进行对比说明:
json_tmp1 = '{"username": "jiangnanmax", "age": 21}'
python_dict1 = json.loads(json_tmp1)
print(python_dict1)
# 输出:
# {'username': 'jiangnanmax', 'age': 21}
with open("json.txt", 'r') as json_tmp2:
python_dict2 = json.load(json_tmp2)
print(python_dict2)
# 输出:
# {'username': 'jiangnanmax', 'age': 21}