0

我有类似的字符串"[1,2,3]"。现在我正在尝试将此字符串转换为列表。该列表应包含[1,2,3].

有没有办法做到这一点?

4

2 回答 2

12

您可以使用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]
>>>
于 2013-09-20T10:12:52.663 回答
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'>
于 2013-09-20T11:44:04.420 回答