我将Python列表保存为这样的字符串表示形式:
a = "['item 1', 'item 2', 'item 3']"
Run Code Online (Sandbox Code Playgroud)
我想将该字符串转换为列表对象。我试图直接加载或使用它,list(a)但它只是拆分字符串的每个字符。我想我可以通过删除第一个字符,删除最后一个字符,基于拆分,然后删除单引号的方式来手动解析它。但是没有更好的方法直接将其转换,因为该字符串可以准确地表示列表看起来像什么?
使用ast模块
>>> import ast
>>> list_as_string = "['item 1', 'item 2', 'item 3']"
>>> _list = ast.literal_eval(list_as_string)
>>> _list
['item 1', 'item 2', 'item 3']
>>>
Run Code Online (Sandbox Code Playgroud)
您可以尝试评估功能
>>> a = "['item 1', 'item 2', 'item 3']"
>>> eval(a)
['item 1', 'item 2', 'item 3']
>>> eval(a)[2]
'item 3'
Run Code Online (Sandbox Code Playgroud)
请注意,根据输入的不同,eval()可能不安全。
编辑:尊敬的Google用户,如果您想将列表的表示形式转换为列表,请使用ast作为@CB建议。这个答案是不正确的。
从ast.literal_eval文档中:
安全地评估表达式节点或包含Python文字或容器显示的字符串。提供的字符串或节点只能由以下Python文字结构组成:字符串,字节,数字,元组,列表,字典,集合,布尔值和无。
| 归档时间: |
|
| 查看次数: |
5390 次 |
| 最近记录: |