我有两个csv文件需要比较并写入新的输出文件。我有这个部分有一个例外。我将第一个csv文件转换为字典,然后将第二个csv文件中的列与字典键进行比较以查找匹配项。我遇到的问题是我的字典有一个具有多个值的单个键。当我将值写入新的csv文件时,我将元组放在一个列中,但我需要它们位于不同的列中。
我的代码如下。
d_csv2 = {}
with open('subscriber_info 02212018.csv', 'r') as f_csv2:
csv_2 = csv.reader(f_csv2)
for cols in csv_2:
d_csv2[cols[1]] = cols[0], cols[2]
with open('subscribersWithMultipleDevices.csv', 'r') as f_csv1, open('output.csv', 'w', newline='') as f_output:
csv_1 = csv.reader(f_csv1)
csv_output = csv.writer(f_output)
csv_output.writerow(['Customer', 'Email', 'First Name', 'Last Name', 'Serial Number', 'WAN MAC', 'IP ADD', 'Model',
'Last Contact', 'Circuit ID', '\n'])
for cols in csv_1:
try:
if cols[6] in d_csv2:
csv_output.writerow(cols + [d_csv2[cols[6]]])
except KeyError:
print('key error')
答案 0 :(得分:0)
您需要“解包”元组,以便将元组的内容添加到列表而不是元组本身。您可以使用解包运算符(*)来完成此任务。
csv_output.writerow(cols + [*d_csv2[cols[6]]])
请注意*
之前添加的d_csv2[cols[6]]
。