[英]Write a dictionary of dictionaries to csv in python
我有一本字典,我想將它寫到 csv 中。 我的字典看起來像:
dict={
object1:
{
time1:[value1,value2],
time2:[value3,value4]
},
object2:
{
time1:[value5,value6],time2[value7,value8]
}
}
我希望它寫成:
對象 1
時間 1、值 1、值 2
時間 2、值 3、值 4
對象 2
時間 1、值 5、值 6
時間 2、值 7、值 8
到目前為止,我只能弄清楚如何使用以下代碼將鍵/值對寫出 csv:
writer = csv.writer(open('test.csv','wb'))
for key, value in Dict.items():
writer.writerow([key,value])
所以它看起來像:
objcet1,{
time1:[value1,value2],time2:[value3,value4]
}
objcet2,{
time1:[value5,value6],time2:[value7,value8]
}
我嘗試使用只寫外部鍵(標記為 object1 和 object2 的鍵)
writer = csv.writer(open('test.csv','wb'))
for key, value in Dict.key():
writer.writerow([key])
但它只是寫出一個空白文件。 我想如果我能弄清楚如何自己寫外鍵,我就可以隨心所欲地寫出csv。 有沒有人有什么建議?
我個人推薦使用 Excel,我一直在處理 .csv 文件,但最終使用了 .xlsx。
import xlsxwriter
workbook = xlsxwriter.Workbook('File.xlsx')
worksheet = workbook.add_worksheet()
row = 0
col = 0
for key in dictionary.keys():
row += 1
worksheet.write(row, col, key)
for item in dictionary[key]:
worksheet.write(row, col + 1, item)
worksheet.write(row, col + 2, dictionary[key][item][0])
row += 1
workbook.close()
在那里您可以更改列和行的增量,以便獲得您想要的 Excel 表格。 之后您甚至可以將其從 Excel 導出為 .csv 文件。
您預期的輸出格式看起來非常令人驚訝,並且看起來不像一個合理的 csv 格式。
但是,這將導致您似乎正在尋找的內容:
>>> mydict = {'object1':{'time1':['value1','value2'],'time 2':['value3','value4']},'object2':{'time1':['value5','value6'],'time2':['value7','value8']}}
>>> print "\n".join(["%s %s " % (k, " ".join([", ".join([k1]+v1) for (k1,v1) in v.iteritems()])) for (k,v) in mydict.iteritems()])
object1 time1, value1, value2 time2, value3, value4
object2 time1, value5, value6 time2, value7, value8
嘗試這個:
import csv
writer = csv.writer(open('test.csv','wb'))
d={'object1':{'time1':['value1','value2'],'time2':['value3','value4']},
'object2':{'time1':['value5','value6'],'time2':['value7','value8']}}
for key, value in d.iteritems():
ln = [key]
for ik, iv in value.iteritems():
ln.append(ik)
ln.extend([v for v in iv])
writer.writerow(ln)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.