如何在Excel工作表中打印嵌套词典?

时间:2019-05-04 15:29:03

标签: python openpyxl

我是python的新手,我想对一个名为(从电子表格中读取数据,第12章“使用excel工作”)的proyect进行一些修改。一旦完成该项目,我想在同一张woorkbook上的新表中打印之前刻写的字典。 但是现在,当我尝试在excel工作表中书写时,嵌套字典存在一些麻烦。代码在嵌套循环的第二行崩溃,所以我认为循环中的netx行也会发生同样的情况

lstBook.Items.Add(book); // of course this is working only a ToString command to the Book class

我试图更改第二行     hoja1.cell(column = 2,row = next_row,value = value)到:

import openpyxl, pprint
libro=openpyxl.load_workbook(r"J:Pathtothedata\censuspopdata.xlsx")
hoja = libro.active
countyData={}
print('Reading rows...')
for row in range(2, hoja.max_row + 1):
    # Each row in the spreadsheet has data for one census tract.
    state = hoja['B' + str(row)].value
    county = hoja['C' + str(row)].value
    pop = hoja['D' + str(row)].value
    countyData.setdefault(state,{})
    countyData[state].setdefault(county, {'tracts': 0, 'pop': 0})
    countyData[state][county]['tracts'] += 1
    countyData[state][county]['pop'] += int(pop)
print('Writing results...')
libro.create_sheet(index=1,title='Subtotal')#Create a new worksheet
hoja1 = libro.worksheets[1]#set that sheet as active

#Here starts the problems
next_row = 1
for key, value in countyData.items():#for each element in allCounty print the results
    for pop, tracts in value.items():
        hoja1.cell(column=1,row=next_row,value=key)
        hoja1.cell(column=2,row=next_row,value=value)
        hoja1.cell(column=3,row=next_row,value=pop)
        hoja1.cell(column=3,row=next_row,value=tracts)
        next_row+=1
libro.save

,并且不起作用。 它向我显示了带有图例“ raise ValueError(“无法将{0!r}转换为Excel” .format(value))“

的整个词典。

然后我尝试了:     hoja1.cell(column = 2,row = next_row,value = countyData.get(key)并显示给我:

hoja1.cell(column=2,row=next_row,value=countyData[key])

我希望输出类似

字典中每个值的“州”,“县”,“人口”,“道”。

0 个答案:

没有答案
相关问题