jef*_*jef 5 python linux json carriage-return python-3.x
我的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)
Run Code Online (Sandbox Code Playgroud)
如果你坚持一贯的CRLF行为(JSON规范要求解析器同时处理,但在某些纯文本格式阅读器如记事本打开它可能是一致CRLF更容易),解决的办法是在该open函数,而不是json模块.
只需传递newline='\r\n'给open它,它将在所有系统上无缝转换任何\n书面文件,而不是转换为(在Windows和大多数其他操作系统上)的默认行为:json\r\nos.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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4657 次 |
| 最近记录: |