将值从字典写入csv文件

时间:2018-02-21 23:17:06

标签: python csv dictionary

我有两个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')

1 个答案:

答案 0 :(得分:0)

您需要“解包”元组,以便将元组的内容添加到列表而不是元组本身。您可以使用解包运算符(*)来完成此任务。

csv_output.writerow(cols + [*d_csv2[cols[6]]])

请注意*之前添加的d_csv2[cols[6]]