将Unicode字符串从Python dict传递到JSON

时间:2016-05-09 15:52:03

标签: javascript python json unicode

我有一个包含一些Unicode字符串的dict(以及其他对象)。我想将此dict保存为JSON文件,然后通过AJAX显示此内容。

如果final_res是dict,我通常会这样做:

json.dumps(final_res, ensure_ascii=True)

在结果中,我看到如下字符串:

"l\\u00a0m\\u00fcdale"

我想这些是unicode编码的字符。但是当我尝试在Javascript中显示它们时,这些是用斜杠打印的,而不是编码的unicode字母。

我是否在Javascript中做错了正确显示这些内容?或者,在输出到JSON之前,我应该在Python中将这些解码为ASCII吗?

更新

根据以下评论中对@spectra的讨论,我意识到json.dumps不应该输出双斜杠。当我在浏览器中解析它时,会将其打印为文字单斜杠。

我正试图找出一种方法来解决这个问题,json模块,不确定它为什么会发生。

2 个答案:

答案 0 :(得分:0)

我的解决方案是使用“单击”版本将json.dumps的结果保存到数据库中。我是通过在print的结果上调用json.dumps然后将其复制粘贴到数据库来完成的。

答案 1 :(得分:0)

您可以使用UTF8编码json文件而不是转义字符:

json.dumps(final_res,ensure_ascii=False).encode('utf8')

例如

print json.dumps({'name':u'l\u00a0m\u00fcdale'},ensure_ascii=False).encode('utf8')
# {"name": "l müdale"}

然后在客户端AJAX代码中,将编码设置为'utf8': How to set encoding in .getJSON JQuery

$.ajax({ contentType: "application/json; charset=utf-8", ... })
相关问题