我有一个utf-8编码的字符串,比如
>>> print s
"{u'name':u'Pradip Das'}"
基本上我从JSON文件加载一些数据并按上面的方式加载。 现在,我想把这个字符串转换为python字典。所以我可以这样做:
>>> print d['name']
'Pradip Das'
答案 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
的原因。