CSVをPython辞書に読み込むためのコードを記述しましたが、これはうまくいきます。私は辞書をCSVに戻そうとしています。私は次のように書いています:CSVへのPython辞書
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はaを出力しますが、CSVには何も書き込まれません。私はこれは辞書が順序付けられていないことと関係があると信じています。私は本当に各fID(fClassRange ex。 "5.0 to 5.25")に関連付けられたfIDとそれぞれのキーを書き出し、次に各fClassRangeに関連付けられた値fAreaをCSVに書き出す必要がありますが、私のコードは、私がfIDでも書き出す方法を理解することができないからです。
私はDictWriter
を使用しましたが、必要な文字列がどのように表示されるかわかりません。
はケネスReitz氏の[tablib](HTTPをお勧めしなければなりませんdocs.python-tablib.org/en/latest/)。ここで探していた以上のことをしているので、これは直接的な答えではなく、このライブラリを他の人に推薦したいだけです。それは素晴らしい、使いやすいAPIを持っていると簡単にcsv、tsv、json、yaml、およびxlsxにシリアル化することができます。 – hangtwenty