Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3中文字符转换为json_Python_Json_Unicode_Python 2.x - Fatal编程技术网

Python3中文字符转换为json

Python3中文字符转换为json,python,json,unicode,python-2.x,Python,Json,Unicode,Python 2.x,我在尝试创建json文件时遇到问题。json文件已创建,但值不正确。值的内部是一个汉字,在python中,汉字正在工作,它会显示出来。但是,当我尝试将值保存到json中时。汉字变成\u3010\u725b\u8089\u9762\u3011\u5b83。值也是dictionary[{}]的列表。我是这样尝试的: text = '[{"one":"\u3010\u725b\u8089\u9762\u3011\u5b83"}]' with open("file.json", "w") as f:

我在尝试创建json文件时遇到问题。json文件已创建,但值不正确。值的内部是一个汉字,在python中,汉字正在工作,它会显示出来。但是,当我尝试将值保存到json中时。汉字变成
\u3010\u725b\u8089\u9762\u3011\u5b83
。值也是dictionary
[{}]
的列表。我是这样尝试的:

text = '[{"one":"\u3010\u725b\u8089\u9762\u3011\u5b83"}]'
with open("file.json", "w") as f:
   json.dump(text, f)
结果仍然像
[{“one”:“\u3010\u725b\u8089\u9762\u3011\u5b83”}]

我尝试了一些代码,比如:

json.dumps(json_file, ensure_ascii=False, indent=2)
decode("utf-8")
encoding='utf-8'
而且,我还尝试了另一种解决方案。结果是:

>>> text_baru = {
...     "#export_date": "1475226000146",
...     "artist_id": "1159638168",
...     "artist_type_id": "1",
...     "is_actual_artist": "1",
...     "name": "\uc2e4\ubc84 \ud14c\uc774\ube14",
...     "view_url": "http://itunes.apple.com/artist/silbeo-teibeul/id1159638168?uo=5"
... }
>>> json.dumps(text_baru, ensure_ascii=False)
'{"#export_date": "1475226000146", "name": "\\\\uc2e4\\\\ubc84 \\\\ud14c\\\\uc774\\\\ube14", "view_url": "http://itunes.apple.com/artist/silbeo-teibeul/id1159638168?uo=5", "artist_type_id": "1", "is_actual_artist": "1", "artist_id": "1159638168"}'

仍然不起作用

我已经尝试过那种解决方案了。但不是为我工作。我在尝试该解决方案时编辑了问题中的结果。请设置要写入的文件的编码
utf-8
。默认情况下,编码将设置为通过
locale.getpreferredencoding()
@StefaniJohnsson升级到Python 3返回的值。你在Python2.x上看到了结果。@wim实际上,我已经在使用Python3你知道
[{“one”:“\u3010\u725b\u8089\u9762\u3011\u5b83”}]
是完全有效的JSON吗?但是如果您确实需要/希望在输出中看到文字汉字,那么
确保ascii
参数就是您想要的。如果它不工作,那么您必须调试,从输入开始。例如,在上一个示例中,尝试使用
“name”:u“\uc2e4…”
(即带有显式
u“…”
前缀,适用于Python 2和Python 3)。