【问题标题】:Convert dict of dicts to CSV in a composite-key format以复合键格式将 dict 的 dict 转换为 CSV
【发布时间】:2020-05-29 05:58:12
【问题描述】:

我问了这个问题,但它已关闭,有以下建议的解决方案:

  1. Thread 1
  2. Thread 2
  3. Thread 3
  4. Thread 4

很遗憾,这些都没有回答我的问题,因为它们都是基于矩阵格式的表格。我想要一个复合键格式。如果建议的主题没有回答我的问题,我会被告知,然后我会发布另一个。

我有一个格式如下的 JSON 文件:

{
    "0": {
        "0": "skinless, boneless chicken breast halves",
        "1": "butter",
        "2": "condensed cream of chicken soup",
        "3": "onion, finely diced",
        "4": "refrigerated biscuit dough, torn into pieces"
    },
    "1": {
        "5": "condensed cream of mushroom soup",
        "3": "dry onion soup mix",
        "6": "water",
        "7": "pot roast"
    },
...
}

我想把它转换成如下:

pk1 pk2 text
0   1   skinless, boneless chicken breast halves
0   2   butter
0   3   condensed cream of chicken soup
...
1   7   pot roast
...

我试过用pandas,如下:

df = pd.DataFrame.from_records(ingredient_list)

df.to_csv('outputfile.csv')

但这会产生类似矩阵格式的 csv 文件:

    0            1       2            ...  5            ...
0   skinless...  butter  condensed...
1                                          condensed...
...

这不是我所期望的。如何以复合键的方式实现我需要的结果?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    试试这个:

    pd.DataFrame([(k,k1,v1) for k,v in dct.items() for k1,v1 in v.items()], columns=['pk1', 'pk2', 'text'])
    

    dct 在哪里:

    {
        "0": {
            "0": "skinless, boneless chicken breast halves",
            "1": "butter",
            "2": "condensed cream of chicken soup",
            "3": "onion, finely diced",
            "4": "refrigerated biscuit dough, torn into pieces"
        },
        "1": {
            "5": "condensed cream of mushroom soup",
            "3": "dry onion soup mix",
            "6": "water",
            "7": "pot roast"
        },
    ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-28
      • 2020-02-09
      • 2023-03-14
      • 1970-01-01
      • 2016-02-15
      • 2021-05-19
      • 1970-01-01
      • 2012-10-28
      相关资源
      最近更新 更多