Python 将带有数字数组的嵌套字典保存到CSV文件中

Python 将带有数字数组的嵌套字典保存到CSV文件中,python,arrays,dictionary,export-to-csv,Python,Arrays,Dictionary,Export To Csv,我有一本字典(cell_summary),里面有46个条目(b1c0、b1c1、b1c2..)。“cell_summary”中的每一项都是一个包含8项的字典。这8项中的每一项都是一个数字数组。我想将46个项目转换为单个CSV或excel工作簿中的46张工作表。8键名称必须是每张工作表中的列名,相应的数据应在同一列中。请参阅随附的图像,以清楚了解数据。CSV文件中的每个工作表都应具有所有8个字段名称,并且数组中的值必须出现在相应字段的列中 我尝试了下面的代码。但是,数组中的所有值仅存储在CSV文件

我有一本字典(cell_summary),里面有46个条目(b1c0、b1c1、b1c2..)。“cell_summary”中的每一项都是一个包含8项的字典。这8项中的每一项都是一个数字数组。我想将46个项目转换为单个CSV或excel工作簿中的46张工作表。8键名称必须是每张工作表中的列名,相应的数据应在同一列中。请参阅随附的图像,以清楚了解数据。CSV文件中的每个工作表都应具有所有8个字段名称,并且数组中的值必须出现在相应字段的列中

我尝试了下面的代码。但是,数组中的所有值仅存储在CSV文件的一个单元格中。请参阅所附图片以供参考

请帮我做这个

import csv
import itertools

with open("Cell Summary.csv", 'w', newline='' )as f:

    fields = ['IR', 'QC', 'QD', 'Tavg', 'Tmin', 'Tmax', 'chargetime', 'cycle']
    w = csv.DictWriter( f, fields )
    for key,val in sorted(cell_summary.items()):
        row = {'IR': key}
        row.update(val)
        w.writerow(row)

编写数据帧比编写字典更容易,如以下实现所示。您需要安装
openpyxl
,有关如何安装,请参阅

import numpy as np
import pandas as pd
writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')
diction={'b1c0':{'IR':np.arange(1,100,1),'QC':np.arange(1,100,1),'QD':np.arange(1,100,1)},
        'b1c1':{'IR':np.arange(1,100,1),'QC':np.arange(1,100,1),'QD':np.arange(1,100,1)},
        'b1c2':{'IR':np.arange(1,100,1),'QC':np.arange(1,100,1),'QD':np.arange(1,100,1)}}

for df_name, df in diction.items():
    pd.DataFrame.from_dict(df).to_excel(writer, sheet_name=df_name)
writer.save()

Hello@Sameeresque。非常感谢你。真的帮了我很多。:)如果字典(字典)中每个数组的长度不同,我如何做相同的工作?在上面提到的示例代码中,如果“IR”、“QC”、“QD”是大小为100、150、120的数组。那我怎么做呢?我试过了,但它说“数组的长度必须相同”。请用这个@SameeresqueI来指导我,我建议填充使所有数组长度相等。看到这个了吗