我已經編寫代碼來將CSV讀取到Python字典中,該工具正常工作。我試圖讓字典回到CSV。我寫了以下內容:Python字典到CSV
import csv
itemDict={}
listReader = csv.reader(open('/Users/broberts/Desktop/Sum_CSP1.csv','rU'), delimiter = ',', quotechar='|')
for row in listReader:
fID = row[0]
fClassRange = row[1]
fArea = row[2]
if itemDict.has_key(fID):
itemDict[fID][fClassRange]=fArea
else:
itemDict[fID] = {'5.0 to 5.25':'','5.25 to 5.5':'','5.5 to 5.75':'','5.75 to 6.0':'','6.0 to 6.25':'','6.25 to 6.5':'','6.5 to 6.75':'','6.75 to 7.0':'','7.0 to 7.25':'','7.25 to 7.5':'','7.5 to 7.75':'','7.75 to 8.0':'','8.0 to 8.25':'',}
itemDict[fID][fClassRange]=fArea
listWriter = csv.writer(open('/Users/broberts/Desktop/Sum_CSP1_output.csv', 'wb'), delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
for a in itemDict:
print a
listWriter.writerow(a)
在最後一個塊中,listWriter不會向CSV寫入任何內容,儘管它會打印出一個。我相信這與一本無序的字典有關。我真的需要寫出fID和與每個fID(fClassRange例如「5.0到5.25」)相關聯的每個鍵,然後將與每個fClassRange相關聯的值fArea寫入CSV,但是我甚至沒有得到那麼遠我的代碼,因爲我不知道如何寫出甚至fID。
我看着使用DictWriter
,但我無法弄清楚如何告訴它什麼需要字段名是。
要推薦肯尼斯·賴茨的[tablib(HTTP:// docs.python-tablib.org/en/latest/)。它不僅僅是你在這裏尋找的東西,所以這不是一個直接的答案,只是想把這個圖書館推薦給其他人。它有一個非常好用的API,你可以毫不費力地序列化爲csv,tsv,json,yaml和xlsx。 – hangtwenty