<p>我强烈建议您使用<code>csv.DictReader</code>来构造逻辑。像这里一样,命名这么多变量很可能会导致混淆。在</p>
<p>下面是一个示例,其中我们为<code>fieldnames</code>参数提供一个列表。注意,<em>有12个</em>字段,因为您的行以逗号结尾。由于<code>field_list</code>只有11个元素,所以最后一列被赋予键<code>None</code>。当你打印字典时,这一点很明显。在</p>
<pre><code>from io import StringIO
import csv
mystr = StringIO('0.00,457.00,0.00,862.00,12892,32575,"LAX",11292,30325,"DEN",11,')
field_list = ['passengers', 'freight', 'mail', 'distance', 'origin_airport_id',
'origin_city_marked_id', 'origin', 'dest_airport_id',
'dest_city_marked_id', 'dest', 'month']
# replace mystr with open(file_path, 'r', newline='')
with mystr as file:
reader = csv.DictReader(file, delimiter=',', fieldnames=field_list)
for line in reader:
print(line)
OrderedDict([('passengers', '0.00'),
('freight', '457.00'),
('mail', '0.00'),
('distance', '862.00'),
('origin_airport_id', '12892'),
('origin_city_marked_id', '32575'),
('origin', 'LAX'),
('dest_airport_id', '11292'),
('dest_city_marked_id', '30325'),
('dest', 'DEN'),
('month', '11'),
(None, [''])])
</code></pre>