当前位置:  开发笔记 > 编程语言 > 正文

如何在执行json.dump时显式设置回车符?

如何解决《如何在执行json.dump时显式设置回车符?》经验,为你挑选了1个好方法。

我的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



1> ShadowRanger..:

如果你坚持一贯的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)

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有