我编写了一段代码,将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文件写入任何内容,尽管它会打印a。我认为这与字典无序有关。我真的需要将fID以及与每个fID关联的每个键(例如"fClassRange",如"5.0到5.25")和与每个fClassRange相关联的值fArea写入CSV文件,但是我甚至还没有在代码中完成这一部分,因为我无法弄清楚如何写出fID。我研究了使用DictWriter,但我无法弄清楚如何告诉它所需的字段名称。