0

我正在尝试编写已通过 For, In 循环修改的 .csv 文件的整行。我已经设法让程序将密钥写入 csv 文件,但我无法让它将关联的值与这些密钥一起写入。我不确定是否需要嵌套另一个循环,或者我是否只是在语法上犯了错误。

import csv

def make_billing_dict(csv_dict_reader):
    bdict = {}
    for entry in csv_dict_reader:
    key = entry['BillingNumber']
    bdict[key] = entry
    return bdict

with open('old/MTBT.txt') as csv_file:
    old = csv.DictReader(csv_file)
    old_bills = make_billing_dict(old)

with open('new/MTBT.txt') as csv_file:
    new = csv.DictReader(csv_file)
    new_bills = make_billing_dict(new)

diff = file("diff/diff.csv", "wb" )
writer = csv.writer(diff)

for keys in old_bills:
    if old_bills[keys]['CustomerName'] != new_bills[keys]['CustomerName'] or old_bills[keys]['IsActive'] != new_bills[keys]['IsActive'] or old_bills[keys]['IsPayScan'] != new_bills[keys]['IsPayScan']:
        writer.writerow([keys])



#Used to send records to the console
#       print (new_bills[keys]['BillingNumber'],new_bills[keys]['CustomerName'],new_bills[keys]['IsActive'],new_bills[keys]['IsPayScan'],new_bills[keys]['IsCreditHold'],new_bills[keys]['City'],new_bills[keys]['State'])

#print set(new_bills.keys()) - set(old_bills.keys())

另外,我注意到,如果我添加一个新密钥并将条目添加到新文件中,它不会导致任何问题,但如果我删除一条记录,则会导致密钥错误。我明白为什么,因为它正在寻找原始字典中的密钥,但是有什么办法可以解决这个问题吗?

4

0 回答 0