我有一个从csv文件创建的字典,我想用这个dict更新另一个csv文件sheet2.csv的特定列中的值。在
Sheet2.csv有许多列具有不同的标题,我只需要根据dict中的键值对更新列PartNumber
我的问题是,如何使用dict中的键搜索sheet2.csv并仅更新/写入具有适当值的PartNumber列?在
我是python新手,所以我希望这不是太混乱,任何帮助都是感谢!在
这是我用来创建dict的代码:
import csv
a = open('sheet1.csv', 'rU')
csvReader = csv.DictReader(a)
dict = {}
for line in csvReader:
dict[line["ReferenceID"]] = line["PartNumber"]
print(dict)
dict = {'R150': 'PN000123', 'R331': 'PN000873', 'C774': 'PN000064', 'L7896': 'PN000447', 'R0640': 'PN000878', 'R454': 'PN000333'}
为了使事情更加混乱,我还需要确保sheet2中已经存在的行保持不变。例如,如果有一行ReferenceID为R1234,PartNumber为PN000000,那么它应该保持不变。所以我需要跳过不在我的字典中的行
链接到CSV示例:
编辑:让我重新表述我的问题,并提供一个更好的csvfile示例。在
假设我有一个Dict={'R150':'PN000123','R331':'PN000873','C774':'PN000064','L7896':'PN000447','R0640':'PN000878','R454':'PN000333'}。在
我需要填写这个csv文件:https://www.dropbox.com/s/c95mlitjrvyppef/sheet.csv
具体来说,我需要使用我创建的dict的键来填充PartNumber列。所以我需要遍历column ReferenceID并将该值与dict中的键进行比较。。。。很抱歉,如果这一切令人困惑!在
下面的代码应该能做到这一点。它首先构建一个与代码类似的字典,然后逐行读取
Sheet2.csv
,可能会更新部件号。输出到temp.csv
,可以与初始的Sheet2.csv
进行比较。如果要用temp.csv
的内容覆盖Sheet2.csv
,只需取消对shutil.move
行的注释。在请注意,您提供的示例文件不包含任何可更新的数据,因此}将是相同的。我用一个稍加修改的
Sheet2.csv
和{Sheet1.csv
测试了这一点,其中我确保它实际上包含Sheet2.csv
使用的引用ID。在相关问题 更多 >
编程相关推荐