From an API Call, I return a dictionary that looks like:
{'detectedLanguage': {'language': 'en', 'score': 1.0},'translations': [{'text': 'ハローワールド。これは楽しいです', 'to': 'ja'}, {'text': '世界您好。这很有趣', 'to': 'zh-Hans'}, {'text': '전 세계 여러분 안녕하세요. 이것은 재미', 'to': 'ko'}]}
I know I can loop like:
for i in response[0]['translations']:
print(i)
Which returns these three dictionaries:
{'text': 'ハローワールド。これは楽しいです', 'to': 'ja'}
{'text': '世界您好。这很有趣', 'to': 'zh-Hans'}
{'text': '전 세계 여러분 안녕하세요. 이것은 재미', 'to': 'ko'}
However, I'm not sure how to get them into the dataframe. Is there a solution using json.normalize?
The length of the list of dictionaries will vary, but what I'd like to do is iterate through the 'translations' key to create a dataframe that looks like:
Language Text
ja 'ハローワールド。これは楽しいです'
zh-Hans '世界您好。这很有趣'
ko '전 세계 여러분 안녕하세요. 이것은 재미'
Language = 'to' and Text = 'text'
CodePudding user response:
Try:
>>> pd.DataFrame(response["translations"])[["to", "text"]].rename(columns={"to": "Language", "text": "Text"})
Language Text
0 ja ハローワールド。これは楽しいです
1 zh-Hans 世界您好。这很有趣
2 ko 전 세계 여러분 안녕하세요. 이것은 재미