如何将Unicode字符串转换为字典?

时间:2015-11-17 09:56:05

标签: python dictionary utf-8

我有一个utf-8编码的字符串,比如

>>> print s
"{u'name':u'Pradip Das'}"

基本上我从JSON文件加载一些数据并按上面的方式加载。 现在,我想把这个字符串转换为python字典。所以我可以这样做:

>>> print d['name']
'Pradip Das'

2 个答案:

答案 0 :(得分:4)

使用EVAL将字符串转换为字典。

d=eval(s)
print d['name']

如果有任何击球方式,请告诉我。

答案 1 :(得分:4)

您可以使用内置的ast.literal_eval

>>> import ast
>>> a = ast.literal_eval("{'a' : '1', 'b' : '2'}")
>>> a
{'a': '1', 'b': '2'}
>>> type(a)
<type 'dict'>

这比使用eval更安全。正如文档本身所推荐的那样:

>>> help(ast.literal_eval)
Help on function literal_eval in module ast:

literal_eval(node_or_string)
    Safely evaluate an expression node or a string containing a Python
    expression.  The string or node provided may only consist of the following
    Python literal structures: strings, numbers, tuples, lists, dicts, booleans,
    and None.

此外,您可以阅读此article,这将解释您应该避免使用eval的原因。