将字符串类型dict转换为python dict

时间:2018-02-28 10:49:55

标签: python-3.x dictionary

假设我有一个名为'ds'的字符串变量。

ds="{'a': 1, 'b':2}"

我想将它存储在另一个名为'do'的变量中。

do=some_function(ds)

所以,当我这样做时,

print(do['a'])

我的输出应为1

那么我如何使用构建函数或一些小代码中的一些呢?

1 个答案:

答案 0 :(得分:1)

import ast
ds="{'a': 1, 'b':2}"
do=ast.literal_eval(ds)
print(do['a'])

ast - 抽象语法树

ast模块帮助Python应用程序处理Python抽象语法语法的树。每个Python版本的抽象语法本身都可能会改变;这个模块有助于以编程方式找出当前语法的样子。

ast.literal_eval(node_or_string)

安全地评估表达式节点或包含Python文字或容器显示的Unicode或Latin-1编码字符串。提供的字符串或节点可能只包含以下Python文字结构:字符串,数字,元组,列表,dicts,布尔值和None。

这可以用于安全地评估包含来自不受信任来源的Python值的字符串,而无需自己解析值。它无法评估任意复杂的表达式,例如涉及运算符或索引。

链接文档

  

https://docs.python.org/2/library/ast.html