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

Save nested dictionary with array of numbers into CSV file

我有一本字典 (cell_summary),里面有 46 个项目 (b1c0,b1c1,b1c2..)。 “cell_summary”中的每一项都是一个字典,里面有 8 个项目。 8 项中的每一项都是一个数字数组。我想将 46 个项目转换为单个 CSV 或 excel 工作簿中的 46 个 sheets。 8个键名必须是每个sheet中的列名,对应的数据应该在同一列中。查看附加的图像以获得数据的清晰概念。 CSV 文件中的每个 sheet 应具有所有 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)

与其编写字典,不如编写 Dataframe 更容易,如下面的实现所示。您将需要安装 openpyxl,请参阅 documentation 了解如何安装。

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()