我有一个字符串输出,它是dict ex的形式。
{'key1':'value1','key2':'value2'}
如何轻松地将其保存为字典而不是字符串?
答案 0 :(得分:3)
astr是一个“以dict形式”的字符串。
ast.literal_eval
将其转换为python dict对象。
In [110]: import ast
In [111]: astr="{'key1':'value1','key2':'value2'}"
In [113]: ast.literal_eval(astr)
Out[113]: {'key1': 'value1', 'key2': 'value2'}
答案 1 :(得分:3)
如果您使用的是Python 2.6+,这是最好的,因为它不受eval中的安全漏洞的影响。
import ast
s = """{'key1':'value1','key2':'value2'}"""
d = ast.literal_eval(s)
答案 2 :(得分:1)
使用json.loads - 可能更快
答案 3 :(得分:1)
你从哪里得到这个字符串?它是JSON格式吗?还是python字典格式?或者只是一些碰巧类似于python词典的特殊格式?
如果它是JSON,或者它只是一个字典,并且只包含字符串和/或数字,则可以使用json.loads
,这是最安全的选项,因为它根本无法解析python代码。
这种方法虽然有一些缺点,例如,如果字符串用单引号'
而不是双引号"
括起来,更不用说它只解析json对象/数组了恰巧碰巧与pythons dicts / arrays共享类似的语法。
虽然我认为你得到的字符串可能是JSON格式。我做出这个假设是因为它是数据交换的常用格式。