在Mac OS上运行。 我需要将存储在本地磁盘上的file.json打印到新文件file_formatted.json,而不会转换数据的任何字符。
我目前正在使用python json.tool:
cat file.json | python -m json.tool> file_formatted.json
格式很好,但转换字符,请查看下面的示例
MSSyncTable* table
已更改为…
我检查了文档(https://docs.python.org/2/library/json.html),但找不到任何有用的信息,是否有办法禁用字符转义?
原件:
\u2026
后:
{
"date": "2016-06-01",
"duration": "00:13:25"
"subTitle": "A world first is one click away!",
"title": "Alice in wonderland…"
}
答案 0 :(得分:1)
要获得所需的结果,应使用参数json.dump()
调用json.dumps()
(或ensure_ascii=False
)命令(默认值为True
)。
答案 1 :(得分:1)
两个版本的JSON代表完全相同的对象:
>>> import json
>>> json.loads('{"foo": "…"}') == json.loads('{"foo": "\u2026"}')
True
如果希望Python不转义最终输出中的字符,the module不会为ensure_ascii
标志提供任何命令行界面。不过你可以自己做:
$ echo '{"foo": "\u2026"}' | python -c "import sys,json; print(json.dumps(json.load(sys.stdin), indent=4, ensure_ascii=False).encode('utf-8'))"
{
"foo": "…"
}
答案 2 :(得分:0)
python3 -m json.tool [path of your file] --no-ensure-ascii
--no-ensure-scii
参数可以实现
的文档禁止转义非ASCII字符