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

Gur*_*gde 4 python string list

我有一个字符串

str_sample = "[[1, 2], [2.0, 0.3], ['a', 'b', [None, (1, 3)], {'c': 'd'}]]"
Run Code Online (Sandbox Code Playgroud)

我目前正在使用:

exec("str2list_sample = "+ str_sample)
Run Code Online (Sandbox Code Playgroud)

这样做有更清洁的方法吗?

Bha*_*Rao 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']]
Run Code Online (Sandbox Code Playgroud)

解决您的最新编辑问题

>>> 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'}]]
Run Code Online (Sandbox Code Playgroud)