Преобразование dict dicts в CSV в формате составного ключа - PullRequest
0 голосов
/ 29 мая 2020

Я задал этот вопрос, но он был закрыт, имея предложенные ниже решения:

  1. Резьба 1
  2. Резьба 2
  3. Резьба 3
  4. Резьба 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...
...

Это не то, что я ожидал. Как добиться желаемого результата с помощью составного ключа?

1 Ответ

2 голосов
/ 29 мая 2020

Попробуйте следующее:

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"
    },
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...