【发布时间】:2014-11-19 17:10:10
【问题描述】:
我是编程新手,我正在尝试解析以竖线分隔的 CSV 文件,并将每个项目行(标题后的每一行)存储在单独的列表或字典中。
import csv
with open('toverdpython.csv', 'rb') as toverd:
reader = csv.reader(toverd, delimiter='|', quoting=csv.QUOTE_NONE)
rownum = 0
i = 1
for row in reader:
#Save header row
if rownum == 0:
inputHeader = row
else:
inputRow = {}
inputRow[i] = row
i + 1
print(inputRow.items())
rownum+=1
toverd.close()
这正在生成以下输出:
[(2, ['"Test 8"', '"Test 8"', '', '"Test 8"', 'IUGIGUGUI', 'A', 'EA', '602132312952', '2', 'Default', '', '', '', '', '', '"Test 8"', '6123142', 'US', '', '', '', '', '2121231234', '', 'A', '00002', '4600018168', '1', 'A', '0', 'USD', '10026178', '"KGIUGUGIGIU"', 'SADH', '', '', ''])]
[(2, ['"Test 9"', '"Test 9"', '', '"Test 9"', 'BIGIUG802', 'A', 'EA', '6123124242', '2', 'Default', '', '', '', '', '', '"Test 9"', '3694498', 'US', '', '', '', '', '51124124'', 'A', '00002', '463325358', '1', 'A', '0', 'USD', '134345436178', '"MNONOINOIN"', 'SADAHRH', '', '', ''])]
数据是正确的,但我很难判断是否在循环的每次迭代中都覆盖了我的信息。我尝试阅读列表和字典,但我觉得自己完全迷路了。
我的目标是能够将文档的每一行存储在一个单独的数组中,例如 inputRow1[]、InputRow2[] 等,并按位置在每行中引用值,例如 inputRow2[3] 应该返回“测试 9”。
【问题讨论】:
-
不幸的是,您只是丢弃了每个 inputRow。你说你想要 inputRow1[]、inputRow2{} 等……但通常我们会处理像 inputRow[1][] 等行的列表……这就是你想要的吗?
标签: python list python-2.7 dictionary