pandasでネストされたjsonを読み込む
read nested json with pandas
環境
Google Corab
事象
pandasで、
import pandas as pd
pd.read_json('file.json')
をしたときに、
| index | title | content |
|---|---|---|
| 1 | aaa | {"col1": "a", "col2": "aa"... |
| 2 | bbb | {"col1": "b", "col2": "bb"... |
のようになるjsonファイルがあったとします。(contentに更にjson形式の文字列が入れ子になって格納された形です。)
これを、
| col1 | col2 |
|---|---|
| a | aa |
| b | bb |
と読み込みたかったんですね。
normalizeとかflattenとかで少し検索したらpd.json_normalize('file.json')がそれっぽかったので使ってみたところ、AttributeError: 'str' object has no attribute 'values'と怒られてしまいました。
解決方法
試行錯誤の末、
import pandas as pd
df = pd.read_json('file.json')
df = pd.DataFrame(df.content.to_list())
で正しく読み込めたので記事にしておきます。