python实现将“[dict1,dict2]”格式写入excel
实现根据字典的键生成列名并将值添加至对应位置。
数据格式为[ [{……}, {……}], [{……}], …… ] ,字典中的键不统一。
代码如下:
import xlsxwriter as xw
wb = xw.Workbook('text.xlsx')
ws = wb.add_worksheet("sheet1")
#表头heads,用于判断字典中的键值是否已存在
heads = []
#组合两个list为answers
list1 = [{'姓名':['小红'], '年龄':['10']}, {'姓名':['小白'],'年龄':['8'],'爱好':['唱歌','跳舞']}]
list2 = [{'姓名':['小黄'],'年龄':['7'],'爱好':['画画']}]
answers = [list1,list2]
#n用于确定行数,每循环到一个字典就加1
n = 0
#循环list1,list2
for answer in answers:
#以list1为例,循环小红和小白的信息
for a in answer:
n += 1
#获取字典中的键
for key in a.keys():
#判断每个键是否存在于heads,不存在则添加
if key not in heads:
heads.append(key)
#将key添加至excel作为列名
ws.write(0, len(heads)-1,key)
#写入excel。ws.write(行,列,值)
ws.write(n, heads.index(key), str(a[key]))
wb.close()
结果如图: