我正在尋找有關從csv文件返回結果FORMAT的指導。我至少有部分代碼符合我的目標,但儘管通過這個以及其他許多網站/論壇進行了大量的研究,但我無法解決最後一步。我也在gis.stackexchange上提出了這個問題,但是被重定向到了這個論壇,其評論「關於一般信息技術的問題,沒有明確的GIS組件,在這裏是焦點話題,但是可以在Stack Overflow上研究/詢問」。如何修改使用python從csv調用返回的數據格式
我成功的一段python代碼,它從csv中讀取選定的數據並以字典格式返回它,如下所示; (是的,我知道它返回類型字典的原因是由於我的代碼是調用!!!格式,這是問題的癥結所在)
import arcpy, csv
Att_Dict ={}
with open ("C:/Data/Code/Python/Library/Peter/123.csv") as f:
reader = csv.DictReader(f)
for row in reader:
if row['Status']=='Keep':
Att_Dict.update({row['book_id']:row['book_ref']})
print Att_Dict
Att_Dict = {'7643': '7625', '9644': '2289', '4406': '4443', '7588': '9681', '2252': '7947'}
對於我的代碼的下一部分來運行,我需要上面的結果,但格式爲; (這是一個非常漫長的代碼的一部分,但只顯示塞是返回格式張貼等200行左右所以價值不大)
Att_Dict = [[7643, 7625], [9644, 2289], [4406, 4443], [7588, 9681], [2252, 7947]]
雖然我已經無數次試驗,並可以通過恢復到CSV實現這一目標.Reader而不是csv.DictReader,那麼我就失去了'清除'列'狀態'具有值'保留'在內的行的能力,並且這是當前任務的要求。
我迄今爲止的大錘方法是在空閒狀態下使用'搜索和替換'來修改返回的集合以滿足其他要求,但是我確定它可以通過編程方式而不是手動完成。與https://docs.python.org/2/library/index.html相似但不完全相同,加上我的開始問題Returning values from multiple CSV columns to Python dictionary?和Using Python's csv.dictreader to search for specific key to then print its value加上geonet.esri上的許多基於csv的問題。
(使用Win 7的時,ArcGIS 10.2的Python 2.7.5)
指定的Python 2.7.5的問題,所以我覺得iteritems()應使用通過迭代字典。 – TomAdair
完美謝謝@enu-s。這給了我一直在尋找的結果。 – user1995458