我有"[1,2,3]"
之类的字符串。现在我正在尝试将此字符串转换为列表。该列表应包含[1,2,3]
。
有没有办法做到这一点?
答案 0 :(得分:8)
您可以使用ast.literal_val:
ast.literal_eval(node_or_string)
安全地评估表达式节点或包含Python表达式的Unicode或Latin-1编码字符串。提供的字符串或节点可能只包含以下Python文字结构:字符串,数字,元组,列表,dicts,布尔值和None。
这可用于安全地评估包含来自不受信任来源的Python表达式的字符串,而无需自己解析值。
示例:强>
>>> from ast import literal_eval
>>> literal_eval("[1,2,3]")
[1, 2, 3]
>>>
答案 1 :(得分:0)
更好的方法是简单地使用JSON,它恰好具有相同的编码:
>>> import json
>>> json.loads('[1,2,3]')
[1,2,3]
>>> type(json.loads('[1,2,3]'))
<type 'list'>
>>> type(json.loads('[1,2,3]')[0])
<type 'int'>