我在使用csv阅读器时遇到问题。 我想逐行读取csv文件并打印出每行的第二个条目。 一行的所有条目都写在一个单元格端,用“,”分隔
看起来像这样: 0.00457.00,0.00862.001289232575,“LAX”,1129230325,“DEN”,11
我试过这个代码:
with open(file_path, 'r', newline='') as file:
reader = csv.reader(file, delimiter=',')
for line in reader:
passangers, freight, mail, distance, origin_airport_id, origin_city_marked_id, origin, dest_airport_id, dest_city_marked_id, dest, month = line
print(freight)
但是我得到:ValueError:没有足够的值来解包(预期为11,得到1)
这段代码前一段时间在另一个项目中对我有用,所以我真的不知道为什么它现在不起作用。我尝试了不同的分隔符(';'、空格等),但基本上都是猜测,因为我不知道还能做什么
我强烈建议您使用
csv.DictReader
来构造逻辑。像这里一样,命名这么多变量很可能会导致混淆。在下面是一个示例,其中我们为
fieldnames
参数提供一个列表。注意,有12个字段,因为您的行以逗号结尾。由于field_list
只有11个元素,所以最后一列被赋予键None
。当你打印字典时,这一点很明显。在问题是由于您试图将包含12个元素的列表压缩为11个元素。在
尝试:
原始问题的简化示例:
^{pr2}$相关问题 更多 >
编程相关推荐