Python str to list

读csv文件的时候读到这样的str:
[“item1”,“item2”,“item3”]
显然这是一个list
可是我该如何把它转化成list呢?
用list()的话 每个字符会被当成一个item
用切词的方法也应该可以 但会麻烦
但是有没有直接的方法呢?

阅读 4.7k
4 个回答

可以使用 json 模块转换

input:

print i
import json
s = '["item1", "item2", "item3"]'
_list = json.loads(s)
print type(_list)
for i in _list:
    print i
    

output:

<type 'list'>
item1
item2
item3
>>> import ast
>>> ast.literal_eval('["item1", "item2", "item3"]')
['item1', 'item2', 'item3']

使用 eval, 不過要小心他的風險:

In [1]: s = '["item1", "item2", "item3"]'

In [2]: lst = eval(s)

In [3]: lst
Out[3]: ['item1', 'item2', 'item3']

對於 Python 的 subset 進行求值, 使用 ast.literal_eval 是對的。

下面文章值得一讀:

Using python's eval() vs. ast.literal_eval()?


我回答過的問題: Python-QA

不用eval方案:
替换'[" 为 空
替换 "]' 为 空
替换 " 为空
在按,号切割成list

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进