我有类似的字符串"[1,2,3]"
。现在我正在尝试将此字符串转换为列表。该列表应包含[1,2,3]
.
有没有办法做到这一点?
您可以使用ast.literal_val:
ast.literal_eval(node_or_string)
安全地评估包含 Python 表达式的表达式节点或 Unicode 或 Latin-1 编码字符串。提供的字符串或节点只能由以下 Python 文字结构组成:字符串、数字、元组、列表、字典、布尔值和无。
这可用于安全地评估来自不受信任来源的包含 Python 表达式的字符串,而无需自己解析值。
例子:
>>> from ast import literal_eval
>>> literal_eval("[1,2,3]")
[1, 2, 3]
>>>
一个更好的方法是简单地使用 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'>