首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在执行json.dump时显式设置回车?

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

Stack Overflow用户
提问于 2017-01-25 03:25:01
回答 2查看 10.7K关注 0票数 8

我的python脚本生成json文件。我必须支持在windows和linux上运行的python文件。问题是windows和linux上的差异回车。当我在windows上运行这段代码时,它会输出CRLF json。当我在linux上运行它时,它会输出LF。

那么,在python3.5中执行json转储时,如何显式地设置回车?我不能

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-25 05:18:58

如果您坚持一致的CRLF行为( JSON规范要求解析器处理这两种行为,但在某些纯文本阅读器(如记事本)中使用一致的CRLF打开它可能更容易),解决方案是在 function中,而不是在json模块中。

只需将newline='\r\n'传递给open,它将在所有系统上无缝地将json编写的任何\n转换为\r\n,而不是将转换为os.linesep的默认行为(即Windows上的\r\n和大多数其他OSes上的\n ):

代码语言:javascript
复制
with open(fpath, 'w', encoding="utf-8", newline='\r\n') as outfile:
    json.dump(data, outfile, indent=4, sort_keys=True, ensure_ascii=False)
票数 12
EN

Stack Overflow用户

发布于 2017-01-25 04:58:05

行尾是json规范中的空白(https://www.rfc-editor.org/rfc/rfc7159底部的第2节):

在这六个结构字符中的任何一个之前或之后都允许使用不重要的空格。 ws = *( %x20 /;空格%x09 /;水平制表符%x0A /;线路馈送或新线路%x0D );载运返回

这意味着每个读者都必须同时处理CR和LF才能符合要求。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41842875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档