将字符串转换为嵌套结构,如list

时间:2015-06-07 02:50:58

标签: python string list

我有一个像

这样的字符串
str_sample = "[[1, 2], [2.0, 0.3], ['a', 'b', [None, (1, 3)], {'c': 'd'}]]"

我目前正在使用:

exec("str2list_sample = "+ str_sample)

有没有更清洁的做法?

2 个答案:

答案 0 :(得分:5)

首先,不要为变量str命名,因为它会影响内置变量。

要解决您的问题,您可以使用ast.literal_eval

>>> a = "[[1, 2], [2.0, 0.3], ['a', 'b']]"
>>> import ast
>>> ast.literal_eval(a)
[[1, 2], [2.0, 0.3], ['a', 'b']]

解决您最新的修改

>>> str_sample = "[[1, 2], [2.0, 0.3], ['a', 'b', [None, (1, 3)], {'c': 'd'}]]"
>>> ast.literal_eval(str_sample)
[[1, 2], [2.0, 0.3], ['a', 'b', [None, (1, 3)], {'c': 'd'}]]

答案 1 :(得分:2)

使用eval,但这不是good practice

eval("[[1, 2], [2.0, 0.3], ['a', 'b']]")
[[1, 2], [2.0, 0.3], ['a', 'b']]