我正在使用 Python 3.2 版。有以下代码:
for row2 in reader2:
for row1 in reader1:
if row1['identification_column'] == row2['identification_column']:
row2['updated_col'] = row1['updated_col']
writer.writerow(row2)
reader1 是一个 csv.DictReader 对象,如下所示:
identification_column,type
1, bike
2, guitar
3, drums
4, airplane
5, computer
reader2 与 reader1 类似,但文件更长、更全面。
问题是这样的:
我遍历了所有的内循环,如果程序没有找到匹配项,它就不会写行,然后像我想的那样递增外循环。它只是停止。最初它给了我一个错误,直到我在这里阅读了一篇帖子,其中有人建议在作者声明语句中添加“extrasaction = 'ignore'”。但这并没有解决我的问题。
对于修复此逻辑的任何反馈,我将不胜感激。在我看来,以下是将会发生的事情:
A)在内循环没有从外循环中找到有问题的值的情况下,程序输出外循环中的行而不做任何更改
B)如果内部循环具有外部循环正在迭代的确切值,请更改该行中的一列中的值,然后输出该行
我可以看到,程序只是在内循环的第一次迭代后停止,但我不明白为什么会这样。