比如有一个json文件test.json,内容为:{"one":{"two":"中文"}}
想要分层次的查看,于是:cat test.json | python3 -m json.tool
然后输出为:
{
"one": {
"two": "\u4e2d\u6587"
}
}
然而中文已经转换成了unicode编码,如何避免这种转换?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
必须转!
json是用于交换数据的,Unicode等 多字节字符 会在传输过程中出错。
"\u4e2d\u6587" ,严格的说,这不是utf格式编码,而是
unicode转义。更新
用
repr()保存json对象不知道什么原因,我看不到评论。
你的意思是,只想在控制台显示一下json文件内容,是吧~
那你就把 json模块下的 tool.py 复制出来,改个名字,例如:my_json_tool.py
然后在 main() 里的 调用dump()方法处,给它添加个 参数
ensure_ascii=False控制台命令也要作相应修改。
在输出的时候用utf8编码试试
自问自答吧,在python的标准库json文件夹下有个tool.py文件,更改其中调用的json.dump函数,传一个ensure_ascii = False参数即可,然而这种方法更改了标准库,不知道有没有其他更好的方法。
为什么不能在调用 json.dumps()时候,将关键字参数 ensure_ascii 的值直接赋为False呢?
json.dumps(j, ensure_ascii=False)
这样不行吗?