【发布时间】:2015-07-21 07:22:18
【问题描述】:
我有一个包含列表作为值的字典(见下文),并希望将其保存到 csv。到目前为止,保存工作正常,但是当我将其读回程序时,我得到以下结果,其中两个列表 [1,2,3] 和 [4,5,6] 不再是列表,而是字符串 ( “[1,2,3]”和“[4,5,6]”)。
如何将 csv 中的列表加载为列表而不是字符串?这样我就可以再次访问列表中的元素,而不是单个字符(见下文)。
nodes = []
test_list = [{'Key' : 'key1', 'List' : [1,2,3]},
{'Key' : 'key2', 'List' : [4,5,6]}]
with open('list.csv', 'wb') as f:
writer = csv.DictWriter(f, test_list[0].keys(), delimiter=';')
writer.writeheader()
for entry in test_list:
writer.writerow(entry)
with open('list.csv') as f:
dataset = csv.DictReader(f, delimiter=';')
for row in dataset:
nodes.append(row)
for elem in nodes:
print elem
结果:
{'Key': 'key1', 'List': '[1, 2, 3]'}
{'Key': 'key2', 'List': '[4, 5, 6]'}
问题:
所以现在列表是字符串,我无法访问列表中的数字,因为它现在是一个字符列表。
>> print nodes[0]['List'][0] # print first number from list in first dictionary
[
有人可以帮助我或为我提供替代方案吗? 提前非常感谢!
【问题讨论】:
-
你为什么不直接 json 字典?
标签: python list csv dictionary