相关疑难解决方法(0)

将json.dumps中的utf-8文本保存为UTF8,而不是\ u转义序列

示例代码:

>>> import json
>>> json_string = json.dumps("??? ????")
>>> print json_string
"\u05d1\u05e8\u05d9 \u05e6\u05e7\u05dc\u05d4"
Run Code Online (Sandbox Code Playgroud)

问题是:它不是人类可读的.我(智能)用户想要使用JSON转储验证甚至编辑文本文件.(我宁愿不使用XML)

有没有办法将对象序列化为utf-8 json字符串(而不是\ uXXXX)?

这没有帮助:

>>> import json
>>> json_string = json.dumps("??? ????")
>>> print json_string
"\u05d1\u05e8\u05d9 \u05e6\u05e7\u05dc\u05d4"
Run Code Online (Sandbox Code Playgroud)

工作,但如果任何子对象是python-unicode而不是utf-8,它将转储垃圾:

>>> import json
>>> json_string = json.dumps("??? ????")
>>> print json_string
"\u05d1\u05e8\u05d9 \u05e6\u05e7\u05dc\u05d4"
Run Code Online (Sandbox Code Playgroud)

python unicode json escaping utf-8

394
推荐指数
11
解决办法
29万
查看次数

将字典转储为 UTF-8 格式的 json 文件

我想将字典转储到文件,就像将 Python 字典转储到 JSON 文件中一样。但我遇到了编码问题:\n当我简单地这样做时

\n\n
print(data) \n
Run Code Online (Sandbox Code Playgroud)\n\n

我在终端中得到类似的信息:

\n\n
{\'legend\': \'\\n\\r\\n\\t\\t\xd0\x9d\xd0\xb0 \xd0\xbf\xd1\x80\xd1\x8f\xd0\xbc\xd0\xbe\xd0\xb9 \xd1\x80\xd0\xb0\xd1\x81\xd0\xbf\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xb6\xd0\xb5\xd0\xbd\xd1\x8b \xd1\x81\xd1\x82\xd0\xbe\xd0\xb9\xd0\xbb\xd0\xb0, \xd0\xb2 \xd0\xba\xd0\xbe\xd1\x82\xd0\xbe\xd1\x80\xd1\x8b\xd0\xb5 \xd0\xbd\xd0\xb5\xd0\xbe\xd0\xb1\xd1\x85\xd0\xbe\xd0\xb4\xd0\xb8\xd0\xbc\xd0\xbe \xd1\x80\xd0\xb0\xd1\x81\xd1\x81\xd1\x82\xd0\xb0\xd0\xb2\xd0\xb8\xd1\x82\xd1\x8c \xd0\xba\xd0\xbe\xd1\x80\xd0\xbe\xd0\xb2 \xd1\x82\xd0\xb0\xd0\xba, \xd1\x87\xd1\x82\xd0\xbe\xd0\xb1\xd1\x8b \xd0\xbc\xd0\xb8\xd0\xbd\xd0\xb8\xd0\xbc\xd0\xb0\xd0\xbb\xd1\x8c\xd0\xbd\xd0\xbe\xd0\xb5 \xd1\x80\xd0\xb0\xd1\x81c\xd1\x82\xd0\xbe\xd1\x8f\xd0\xbd\xd0\xb8\xd0\xb5 \xd0\xbc\xd0\xb5\xd0\xb6\xd0\xb4\xd1\x83 \xd0\xba\xd0\xbe\xd1\x80\xd0\xbe\xd0\xb2\xd0\xb0\xd0\xbc\xd0\xb8 \xd0\xb1\xd1\x8b\xd0\xbb\xd0\xbe \xd0\xba\xd0\xb0\xd0\xba \xd0\xbc\xd0\xbe\xd0\xb6\xd0\xbd\xd0\xbe \xd0\xb1\xd0\xbe\xd0\xbb\xd1\x8c\xd1\x88\xd0\xb5.\\r\\n    \\n\', \'input_specification\': \'\\n\\r\\n     \xd0\x92\xd1\x85\xd0\xbe\xd0\xb4\xd0\xbd\xd1\x8b\xd0\xb5 \xd0\xb4\xd0\xb0\xd0\xbd\xd0\xbd\xd1\x8b\xd0\xb5\\r\\n    \\n\\r\\n\\t\\t\xd0\x92 \xd0\xbf\xd0\xb5\xd1\x80\xd0\xb2\xd0\xbe\xd0\xb9 \xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xba\xd0\xb5 \xd0\xb2\xd0\xb2\xd0\xbe\xd0\xb4\xd1\x8f\xd1\x82\xd1\x81\xd1\x8f \xd1\x87\xd0\xb8\xd1\x81\xd0\xbb\xd0\xb0 N\\xa0 (2 < N  < 10001) \xe2\x80\x93 \xd0\xba\xd0\xbe\xd0\xbb\xd0\xb8\xd1\x87\xd0\xb5\xd1\x81\xd1\x82\xd0\xb2\xd0\xbe \xd1\x81\xd1\x82\xd0\xbe\xd0\xb9\xd0\xbb \xd0\xb8 K\\xa0 (1 < K < N ) \xe2\x80\x93 \xd0\xba\xd0\xbe\xd0\xbb\xd0\xb8\xd1\x87\xd0\xb5\xd1\x81\xd1\x82\xd0\xb2\xd0\xbe \xd0\xba\xd0\xbe\xd1\x80\xd0\xbe\xd0\xb2. \xd0\x92\xd0\xbe \xd0\xb2\xd1\x82\xd0\xbe\xd1\x80\xd0\xbe\xd0\xb9 \xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xba\xd0\xb5\\xa0\xd0\xb7\xd0\xb0\xd0\xb4\xd0\xb0\xd1\x8e\xd1\x82\xd1\x81\xd1\x8f N \xd0\xbd\xd0\xb0\xd1\x82\xd1\x83\xd1\x80\xd0\xb0\xd0\xbb\xd1\x8c\xd0\xbd\xd1\x8b\xd1\x85 \xd1\x87\xd0\xb8\xd1\x81\xd0\xb5\xd0\xbb \xd0\xb2 \xd0\xbf\xd0\xbe\xd1\x80\xd1\x8f\xd0\xb4\xd0\xba\xd0\xb5 \xd0\xb2\xd0\xbe\xd0\xb7\xd1\x80\xd0\xb0\xd1\x81\xd1\x82\xd0\xb0\xd0\xbd\xd0\xb8\xd1\x8f \xe2\x80\x93 \xd0\xba\xd0\xbe\xd0\xbe\xd1\x80\xd0\xb4\xd0\xb8\xd0\xbd\xd0\xb0\xd1\x82\xd1\x8b \xd1\x81\xd1\x82\xd0\xbe\xd0\xb9\xd0\xbb (\xd0\xba\xd0\xbe\xd0\xbe\xd1\x80\xd0\xb4\xd0\xb8\xd0\xbd\xd0\xb0\xd1\x82\xd1\x8b \xd0\xbd\xd0\xb5 \xd0\xbf\xd1\x80\xd0\xb5\xd0\xb2\xd0\xbe\xd1\x81\xd1\x85\xd0\xbe\xd0\xb4\xd1\x8f\xd1\x82 109)\\r\\n    \\n\', …
Run Code Online (Sandbox Code Playgroud)

python encoding json character-encoding

7
推荐指数
1
解决办法
8377
查看次数

标签 统计

json ×2

python ×2

character-encoding ×1

encoding ×1

escaping ×1

unicode ×1

utf-8 ×1