我有一个字符串输出,它采用 dict ex 的形式。
{'key1':'value1','key2':'value2'}
如何轻松将其保存为字典而不是字符串?
我有一个字符串输出,它采用 dict ex 的形式。
{'key1':'value1','key2':'value2'}
如何轻松将其保存为字典而不是字符串?
asr 是一个“以字典的形式”的字符串。
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'}
如果您使用的是 Python 2.6+,这是最好的,因为它不受 eval 中的安全漏洞的影响。
import ast
s = """{'key1':'value1','key2':'value2'}"""
d = ast.literal_eval(s)
使用 json.loads - 可能更快
你从哪里得到这个字符串?是 JSON 格式吗?还是python字典格式?或者只是一些恰好类似于 python 字典的 ad-hoc 格式?
如果它是 JSON,或者它只是一个 dict,并且只包含字符串和/或数字,你可以使用json.loads
,它是最安全的选项,因为它根本无法解析 python 代码。
这种方法有一些缺点,例如,如果字符串用单引号'
而不是双引号括起来"
,更不用说它只解析 json 对象/数组,这只是巧合地与 pythons dicts/arrays 共享相似的语法。
尽管我认为您得到的字符串很可能是 JSON 格式。我做出这个假设是因为它是数据交换的常用格式。