2012-12-06 237 views
0

比方說,我有一本字典:寫入csv文件

dict = {'R150': 'PN000123', 'R331': 'PN000873', 'C774': 'PN000064', 'L7896': 'PN000447', 'R0640': 'PN000878', 'R454': 'PN000333'}. 

我需要在此CSV文件示例填寫:https://www.dropbox.com/s/c95mlitjrvyppef/sheet.csv

例如行

HEADER,ID,ReferenceID,Value,Location X-Coordinate,Location Y-Coordinate,ROOM,ALT_SYMBOLS,Voltage,Thermal_Rating,Tolerance,PartNumber,MPN,Description,Part_Type,PCB Footprint,SPLIT_INST,SWAP_INFO,GROUP,Comments,Wattage,Tol,Population Notes,Gender,ICA_MFR_NAME,ICA_PARTNUM,Order#,CLASS,INSTALLED,TN,RATING,OriginalSymbolOrigin,Rated_Current,Manufacturer 2,Status,Need To Mirror/Rotate Pin Display Properties,TOLERANCE,LEVEL 
,,R150,1,,,,,<null>,<null>,<null>,,,to be linked,Resistor,TODO,<null>,<null>,<null>,<null>,1/16W,?,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null> 
,,R4737,1,,,,,<null>,<null>,<null>,,,to be linked,Resistor,TODO,<null>,<null>,<null>,<null>,1/16W,?,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null> 
,,R4738,1,,,,,<null>,<null>,<null>,,,to be linked,Resistor,TODO,<null>,<null>,<null>,<null>,1/16W,?,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null> 

具體來說,我需要根據我創建的字典的鍵填寫PartNumber列。所以我需要迭代列參考ID並將該值與字典中的鍵進行比較。如果有匹配,我需要填寫相應的PartNumber單元格與該值(在字典)...

如果這是所有困惑,我很抱歉我是新來的蟒蛇和我有麻煩的csv模塊。

+2

而不是鏈接到文件下載,請提供您的csv的當前格式和您的預期輸出的最小示例。 –

+0

我甚至無法訪問您鏈接的文件! – LtWorf

+0

基本概述是將文件讀入CSV對象(特別是csv.DictReader),使用next()遍歷行,檢查ReferenceID是否在給定的'dict'中,如果是,則添加零件編號,然後使用DictWriter輸出這個新數組。寫下一些實現這樣的示例代碼,我們可以幫助您計算出詳細信息。 – ernie

回答

0

爲了讓您開始 - 這裏的東西,它使用csv.DictReader對象,並通過你的文件中循環,一行的時間,並在東西your_dict存在基於行的ReferenceIDPartNumber該值,否則到空字符串。

如果您將其與http://docs.python.org/2/library/stdtypes.html#typesmappinghttp://docs.python.org/2/library/csv.html的文檔結合使用,則應該能夠寫出數據並更好地瞭解所發生的情況。

import csv 

your_dict = {'R150': 'PN000123', 'R331': 'PN000873', 'C774': 'PN000064', 'L7896': 'PN000447', 'R0640': 'PN000878', 'R454': 'PN000333'} 
with open('your_csv_file.csv') as fin: 
    csvin = csv.DictReader(fin) 
    for row in csvin: 
     row['PartNumber'] = your_dict.get(row['ReferenceID'], '') 
     print row