I have a dictionary of dictionaries that I would like to write out to csv. my dictionary looks like:
dict={
object1:
{
time1:[value1,value2],
time2:[value3,value4]
},
object2:
{
time1:[value5,value6],time2[value7,value8]
}
}
I would like it to write out as:
object1
time1, value1, value2
time2, value3, value4
object2
time1, value5, value6
time2, value7, value8
Thus far, I can only figure out how to write the key/value pairs out csv using the following code:
writer = csv.writer(open('test.csv','wb'))
for key, value in Dict.items():
writer.writerow([key,value])
So it looks like:
objcet1,{
time1:[value1,value2],time2:[value3,value4]
}
objcet2,{
time1:[value5,value6],time2:[value7,value8]
}
I have tried writing just the outer keys (keys labeled object1 and object2) using
writer = csv.writer(open('test.csv','wb'))
for key, value in Dict.key():
writer.writerow([key])
but it just writes out a blank file. I think If I could figure out how to write the outer keys by themselves, I would be able to write out the csv as I want. Does anyone have any suggestions?
解决方案
I personally recommend using Excel, I have been working on .csv files, but ended up using .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()
And there you can change the columns and the rows increment so that you get the excel table you want to.
You can even export it as a .csv file afterwards from Excel.