如何在字典中转换unicode字符串

时间:2014-02-28 18:07:41

标签: python json

我应用了json.loads()后得到了一个unicode字符串

u"{'1':2, '3':2}"

现在我如何在像

这样的字典中转换它
{'1':2, '3':2}

我尝试过使用

  

re.sub

但仍然找不到任何东西。

1 个答案:

答案 0 :(得分:3)

使用ast.literal_eval()

import ast

dictionary_object = ast.literal_eval(stringobj)

这支持字符串,数字,字典,列表,元组和集合,但不会执行任何其他Python代码(因此这里没有可执行代码风险)。

演示:

>>> import ast
>>> ast.literal_eval(u"{'1':2, '3':2}")
{'1': 2, '3': 2}

但是,很可能你不应该首先编码这样的值。看起来好像你做了:

obj = {'1': 2, '3': 2}
json.encode(str(obj))

而不是

obj = {'1': 2, '3': 2}
json.encode(obj)

后者生成一个合适的JSON对象,前者是一个包含Python字典表示的JSON字符串。