【发布时间】:2017-09-26 21:49:45
【问题描述】:
我有一个包含几列的 csv 文件。其中一列包含带有文字 python 格式列表的行,我想将它们读入列表列表。
CSV 文件
val1 ['foo', 'bar']
val2 ['baz']
val3 ['a','b','c']
到目前为止我尝试过的是;
with open('data.csv') as csv_file:
csv_read = csv.reader(csv_file)
values, value_lists = zip(*csv_read)
value_lists = ast.literal_eval(value_lists)
for val, value_lists in zip(values, value_lists):
for single_list in value_lists:
print(f'{val}: {single_list}')
ast.literal_eval() 给出 ValueError('malformed node or string: ' + repr(node)) 错误。
我希望 value_lists 包含 [['foo', 'bar'],['baz'],['a','b','c']]。
回答
使用value_lists = map(ast.literal_eval, value_lists) 完全符合我的要求。谢谢@PhilipTzou
【问题讨论】:
-
value_lists = map(ast.literal_eval, value_lists).
标签: python list python-3.x csv