Python3中文字符转换为json
我在尝试创建json文件时遇到问题。json文件已创建,但值不正确。值的内部是一个汉字,在python中,汉字正在工作,它会显示出来。但是,当我尝试将值保存到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:
\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)。