使用Datetime索引将数据框字典导出为JSON

我有一个数据帧字典,每个字典都有一个日期时间索引,如下所示:

z = {'a': df1, 'b': df2, 'c': df3}

print(df1.head(3))

                   Sales  Pre-tax_Income  ...  Profit_Margin  Gross_Margin
2013-02-28  1.909350e+07   -2.557250e+06  ...      -0.220741     -0.133933
2013-05-31  6.909194e+06   -3.371473e+06  ...      -0.220507     -0.487969
2013-08-31  9.655660e+06    1.447535e+05  ...      -0.126062      0.014992

我需要将数据存储在具有以下结构的JSON文件中:

{
    "a": {
       "2013-02-28": { "Sales": 1.909350e+07, ... "Gross Margin": -0.133933},
       "2013-05-31": { "Sales": 6.909194e+06, ... "Gross Margin": -0.487969},
     (...)
    "b": {...}

我尝试了另一篇文章中的一段代码:

# convert dataframes into dictionaries
data_dict = {
    key: z[key].to_dict(orient='records')
    for key in z.keys()}

# write to disk
with open('file.json', 'w') as fp:
    json.dump(data_dict, fp, indent=4, sort_keys=True)

我得到的是具有所需结构但没有索引的JSON:

{
    "a": [
       {"Sales": 1.909350e+07, (...)
        "Gross Margin": -0.133933}
  (...)
 }

如何获取正确的JSON文件结构并保留数据帧中的Datetime索引?

评论