Python json.dumps()和json.dump()的区别,json.loads()和json.load()的区别

Python json.dumps()和json.dump()的区别,json.loads()和json.load()的区别

  • python对json的操作总结
dumps()和dump()
  • 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()
  • 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}

你可能感兴趣的:(Python)