python xlsxwriter根据行数据写入单元格

我有python字典:

student_age = {'bala':20,'raju':21} student_id = {'bala':289,'raju':567} 

以及十多个与学生姓名和价值不同领域相似的词典。

预计的excel结果: 在这里输入图像说明

代替

 worksheet.write(0,2,20) 

我想根据学生的名字写(如“ 写”(“bala” – >“age”,20)

更新的代码:

 import xlsxwriter workbook = xlsxwriter.Workbook('student_data.xlsx') worksheet = workbook.add_worksheet() student_age={'bala':20,'raju':21,'ram':22} student_id={'bala':289,'ram':567,'raju':654} students = student_id.keys() print(len(student_age.keys())) fields = [student_age, student_id] # add other dicts here... for row, student in enumerate(students): worksheet.write(row, 0, student) # name column for col, student_data in enumerate(fields): col = col + 1 worksheet.write(row, col, student_data[student]) workbook.close() 

上面的代码工作正常,但有以下争议:

  1. 输出从第0行0列开始,但是我想要第1行的标题,并需要第1行的输出
    1. 如果student_id键是20,我只有15个学生有一本词典,如何留下空白的这些项目没有得到错误,并通过它?

您可以简单地将所有Python字典添加到列表中,以便每个学生遍历它们可以为每一行填充每列。 像这样的东西:

更新地址OP的评论

对于#1,只需在第一行中写入标题,然后将其他行按一个偏移

#2,你可以简单地利用dict.get()而不是[]符号来指定一个默认值,如果该id不在该字典中:

 import xlsxwriter workbook = xlsxwriter.Workbook('student_data.xlsx') worksheet = workbook.add_worksheet() bold = workbook.add_format({'bold': 1}) students = student_id.keys() fields = [student_age, student_id] # add other dicts here... headers = ['name', 'age', 'id'] # ... # write out a header row for i, header in enumerate(headers): worksheet.write(0, i, header, bold) for row, student in enumerate(student): row = row + 1 worksheet.write(row, 0, student) # name column for col, student_data in enumerate(fields): col = col + 1 worksheet.write(row, col, student_data.get(student, '')) 

查看这个链接了解python的字典: http : //learnpythonthehardway.org/book/ex39.html

没有提供一些示例代码,很难看到你做了什么,所以请编辑您的问题与示例代码,我也会编辑我的答案。

你迭代抛出你的字典正确和精确的行,列的Excel文件写入?