APIの結果のjsonをdataframeにしたい(read_jsonを使う)

APIを叩いて取得したjson文字列をさくっとDataFrameにする方法です。

pandasにはread_jsonというjsonを読み込んで、
データフレームにしてくれるものがあります。

実はこれ、ファイルではないjson文字列も対象にできます。

コード

import pandas as pd

# requestsなんかでとってきたjson string
json_string = "[{'id':1,'val':'a'},{'id':2'val':'b'}]"

#import json とかしなくて良い

df = pd.read_json(json_string)

json_stringの形とorient引数

read_jsonにはorient引数というものもありまして、
jsonの中身の形に応じてデータフレームへの取り込み方を変えることができます。

  • orient = records : 上の例のように行=dictの形がリストに入っている
  • orient = index:一つのjsonでできていて、indexのkey:[行方向のデータ]という形のとき
  • orient = columns:一つのjsonでできていて、カラム名:[列方向のデータ]という形の時

便利機能

日付っぽいkey名のデータはtimestampでパースしてくれます。 - atかtimeで終わる - timestampで始める - modifiedかdateって名前

そのまま文字列で扱いたい時は
convert_dates = Falseを渡せば良いみたいです。