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

2024-04-26 18:43:04 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

基本上,我从JSON文件中加载一些数据,它如上所述加载。 现在,我想把这个字符串转换成python字典。所以我可以这样做:

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

Tags: 文件数据字符串namejson编码字典utf
2条回答

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

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

如果有什么方法可以让我知道。

您可以使用内置的^{}

>>> 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

相关问题 更多 >