如何将“[1,2,3]”字符串转换为列表[1,2,3]?

时间:2013-09-20 10:11:24

标签: python-2.7

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

有没有办法做到这一点?

2 个答案:

答案 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'>