为什么`json.dump()`不以`\n`结尾?

Peq*_*que 1 python json

使用Python的json模块进行序列化时,该dump函数不会在行尾添加换行符:

import json


data = {'foo': 1}
json.dump(data, open('out.json', 'w'))
Run Code Online (Sandbox Code Playgroud)

我们可以检查使用wc:

$ wc -l out.json
0 out.json
Run Code Online (Sandbox Code Playgroud)

它为什么这样做?考虑到:

blh*_*ing 5

序列化的JSON只是一个文本序列,而不是文本文件,并且不需要以换行符结束文本序列,因此该json.dump方法适用于生成输出,而JSON边界外没有额外的空格字符对象本身.在许多情况下,例如通过套接字发送JSON对象(如评论中的@deceze所指出的),换行完全没必要,因此由调用者决定尾随换行是否适合应用程序.