读csv文件的时候读到这样的str:
[“item1”,“item2”,“item3”]
显然这是一个list
可是我该如何把它转化成list呢?
用list()的话 每个字符会被当成一个item
用切词的方法也应该可以 但会麻烦
但是有没有直接的方法呢?
可以使用 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
使用 eval
, 不過要小心他的風險:
In [1]: s = '["item1", "item2", "item3"]'
In [2]: lst = eval(s)
In [3]: lst
Out[3]: ['item1', 'item2', 'item3']
Python doc - eval
對於 Python 的 subset 進行求值, 使用 ast.literal_eval
是對的。
下面文章值得一讀:
Using python's eval() vs. ast.literal_eval()?
我回答過的問題: Python-QA
不用eval方案:
替换'[" 为 空
替换 "]' 为 空
替换 " 为空
在按,号切割成list
>>> import ast
>>> ast.literal_eval('["item1", "item2", "item3"]')
['item1', 'item2', 'item3']