【发布时间】:2012-11-19 19:06:46
【问题描述】:
我有一个从 csv 文件创建的字典,并希望使用此字典来更新名为 sheet2.csv 的不同 csv 文件的特定列中的值。
Sheet2.csv 有许多具有不同标题的列,我只需要根据我的字典中的键值对更新列 PartNumber。
我的问题是如何使用 dict 中的键来搜索 sheet2.csv 并仅更新/写入具有适当值的 PartNumber 列?
我是 python 新手,所以我希望这不会太混乱,感谢任何帮助!
这是我用来创建字典的代码:
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 列。所以我需要遍历列 ReferenceID 并将该值与我在 dict 中的键进行比较。如果有匹配项,我需要用该值填写相应的 PartNumber 单元格......如果这一切令人困惑,我很抱歉!
【问题讨论】:
-
能否提供一个示例 sheet1.csv sheet2.csv 的链接
-
非常有帮助。使用您在 dict 中的数据,您能否告诉我 sheet2.csv 中应更新为特定值的单元格的一个示例。 sheet2.csv 中的第一个 ReferenceID 值为 C1619,而 sheet1.csv 中不存在。
-
@MarwanAlsabbagh 为了清楚起见,我编辑了我的问题..如果可能的话。
标签: python excel csv dictionary