Python Выполняет итерацию по словарю для нормализации json

#python #json #dictionary

Вопрос:

Из вызова API я возвращаю словарь, который выглядит следующим образом:

 {'detectedLanguage': {'language': 'en', 'score': 1.0},'translations': [{'text': 'ハローワールド。これは楽しいです', 'to': 'ja'}, {'text': '世界您好。这很有趣', 'to': 'zh-Hans'}, {'text': '전 세계 여러분 안녕하세요. 이것은 재미', 'to': 'ko'}]}
 

Я знаю, что могу зацикливаться, как:

 for i in response[0]['translations']:
    print(i)
 

Который возвращает эти три словаря:

 {'text': 'ハローワールド。これは楽しいです', 'to': 'ja'}
{'text': '世界您好。这很有趣', 'to': 'zh-Hans'}
{'text': '전 세계 여러분 안녕하세요. 이것은 재미', 'to': 'ko'}
 

Однако я не уверен, как поместить их в фрейм данных. Есть ли решение с использованием json.normalize?

Длина списка словарей будет варьироваться, но я хотел бы выполнить итерацию по ключу «переводы», чтобы создать фрейм данных, который выглядит следующим образом:

 Language     Text
ja           'ハローワールド。これは楽しいです'
zh-Hans      '世界您好。这很有趣'
ko           '전 세계 여러분 안녕하세요. 이것은 재미'
 

Язык = «кому» и текст = «текст»

Ответ №1:

Попробуй:

 >>> pd.DataFrame(response["translations"])[["to", "text"]].rename(columns={"to": "Language", "text": "Text"})

  Language                    Text
0       ja        ハローワールド。これは楽しいです
1  zh-Hans               世界您好。这很有趣
2       ko  전 세계 여러분 안녕하세요. 이것은 재미