我在这个官方文档中搜索了python中的 json.dump() 和 json.dumps() 之间的区别。很明显,它们与文件写入选项有关。 但是它们之间的详细区别是什么?在什么情况下一个比另一个更有优势?
除了文档说的内容之外,没有什么要补充的了。如果您想将 JSON 转储到文件/套接字或其他任何内容中,那么您应该使用dump(). 如果您只需要它作为字符串(用于打印、解析或其他),请使用dumps()(dump string)
dump()
dumps()
正如提到的,行为上有一些细微的差异ensure_ascii。这主要是由于底层write()函数是如何工作的,因为它对块而不是整个字符串进行操作。查看他的答案以获取更多详细信息。
ensure_ascii
write()
json.dump()
将 obj 序列化为 JSON 格式的流到 fp(支持 .write() 的类文件对象 如果 ensure_ascii 为 False,则写入 fp 的一些块可能是 unicode 实例
将 obj 序列化为 JSON 格式的流到 fp(支持 .write() 的类文件对象
如果 ensure_ascii 为 False,则写入 fp 的一些块可能是 unicode 实例
json.dumps()
将 obj 序列化为 JSON 格式的 str 如果 ensure_ascii 为 False,则结果可能包含非 ASCII 字符,返回值可能是 unicode 实例
将 obj 序列化为 JSON 格式的 str
如果 ensure_ascii 为 False,则结果可能包含非 ASCII 字符,返回值可能是 unicode 实例