我的 python 脚本生成 json 文件。而且我必须支持在 windows 和 linux 上工作的这个 python 文件。问题是 Windows 和 Linux 上的回车不同。当我在 Windows 上运行这段代码时,它输出 CRLF json。当我在 Linux 上运行它时,它会输出 LF json。
那么在python3.5中做json dump时如何显式设置回车呢?我可以
import json
fpath = "hoge.json"
data = {"AGE": 12, "HOGE": [{"GUA": 3}]}
with open(fpath, 'wt', encoding="utf-8") as outfile:
json.dump(data, outfile, indent=4, sort_keys=True, ensure_ascii=False)
最佳答案
如果您坚持一致的 CRLF 行为(JSON 规范要求解析器同时处理这两者,但在某些纯文本阅读器(如记事本)中使用一致的 CRLF 可能更容易打开它),解决方案在 the open
function 中。 ,而不是 json
模块。
只需将newline='\r\n'
传给open
,它就会翻译json写的任何
到 \n
\r\n
在所有系统上无缝转换,而不是转换为 os.linesep
的默认行为(即 \r\n
在 Windows 上和 \n
在大多数其他操作系统上):
with open(fpath, 'w', encoding="utf-8", newline='\r\n') as outfile:
json.dump(data, outfile, indent=4, sort_keys=True, ensure_ascii=False)
关于python - json.dump 时如何显式设置回车?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41842875/