我的python脚本生成json文件.我必须支持这个在Windows和Linux上运行的python文件.问题是Windows和Linux上的回车差异.当我在Windows上运行此代码时,它输出CRLF json.当我在linux上运行它时输出LF json.
那么如何在python3.5中进行json转储时显式设置回车?我想
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)
http://docs.python.jp/3/library/json.html
如果你坚持一贯的CRLF行为(JSON规范要求解析器同时处理,但在某些纯文本格式阅读器如记事本打开它可能是一致CRLF更容易),解决的办法是在该open
函数,而不是json
模块.
只需传递newline='\r\n'
给open
它,它将在所有系统上无缝转换任何\n
书面文件,而不是转换为(在Windows和大多数其他操作系统上)的默认行为:json
\r\n
os.linesep
\r\n
\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)