用人话总结一下 json.dump()是针对文件的json和python的转换
json.dumps()主要是针对内容数据
json.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)
sort_keys =True:是告诉编码器按照字典排序(a到z)输出。如果是字典类型的python对象,就把关键字按照字典排序。
indent:参数根据数据格式缩进显示,读起来更加清晰。
separators:是分隔符的意思,参数意思分别为不同dict项之间的分隔符和dict项内key和value之间的分隔符,把:和,后面的空格都除去了。
skipkeys:默认值是False,如果dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None),设置为False时,就会报TypeError的错误。此时设置成True,则会跳过这类key 。
ensure_ascii=True:默认输出ASCLL码,如果把这个该成False,就可以输出中文。
check_circular:如果check_circular为false,则跳过对容器类型的循环引用检查,循环引用将导致溢出错误(或更糟的情况)。
allow_nan:如果allow_nan为假,则ValueError将序列化超出范围的浮点值(nan、inf、-inf),严格遵守JSON规范,而不是使用JavaScript等价值(nan、Infinity、-Infinity)。
default:default(obj)是一个函数,它应该返回一个可序列化的obj版本或引发类型错误。默认值只会引发类型错误。
import json# 定义一个Python对象
data = {"name": "aa","age": 22,"city": "Happy New Year"
}# 使用json.dump()将Python对象转换为JSON格式,并写入文件
with open('data.json', 'w') as file:json.dump(data, file)
import json# 定义一个Python对象
data = {"name": "aa","age": 22,"city": "Happy New Year"
}# 使用json.dumps()将Python对象转换为JSON字符串
json_string = json.dumps(data)print(json_string)
现在,我们来总结一下json.dumps()
和json.dump()
之间的主要区别。
- 返回值:
json.dumps()
返回一个JSON格式的字符串,而json.dump()
不需要返回任何值,因为它直接将数据写入文件。 - 使用场景:
json.dumps()
通常用于在内存中处理JSON数据,例如将Python对象转换为JSON字符串,以便在网络传输或存储到数据库中。而json.dump()
则更适合将JSON数据写入文件,例如将Python对象保存为JSON文件。 - 参数:
json.dumps()
和json.dump()
都支持indent
、sort_keys
等参数,用于格式化JSON数据。但是,json.dump()
还需要指定要写入的文件对象作为参数。