我想将以下字符串转换为列表,而不在 python 中使用 eval。
"[['age', '>=', 30], ['age', '<', 36]]"
输出应该是这样的:
['age', '>=', 30] >> list position -[0]
['age', '<', 36] >> list position -[1]
我想将以下字符串转换为列表,而不在 python 中使用 eval。
"[['age', '>=', 30], ['age', '<', 36]]"
输出应该是这样的:
['age', '>=', 30] >> list position -[0]
['age', '<', 36] >> list position -[1]
尝试ast.literal_eval()
:
import ast
x = ast.literal_eval("[['age', '>=', 30], ['age', '<', 36]]")
print x
print type(x)
运行此脚本显示:
[['age', '>=', 30], ['age', '<', 36]]
<type 'list'>
这ast.literal_eval()
是一个安全eval()
的,它只计算字符串、列表、元组、数字和布尔值等文字。
来源:http ://docs.python.org/dev/library/ast.html#ast.literal_eval