Closed3

pythonでjson受け渡し

noznoz

バックエンドとAPIをJSONで受け渡しするときにはまった

実際にWeb APIなどで取得できるJSONにはpandas.DataFrameとして読み込みたいデータ以外の情報も付加されているので、そのままpandas.read_json()を適用できない場合が多い。

一旦文字列はさむ

  1. JSON文字列・ファイルを標準ライブラリのjsonモジュールのjson.loads(), json.load()で辞書として読み込む
  2. 辞書から読み込みたい部分を抽出
  3. 抽出した部分をjson.dumps()で文字列に変換
  4. 文字列をpandas.read_json()に渡す

JSON文字列・ファイルの一部を読み込み

noznoz

引数orientrecordsも試したけど、バックエンド側でpandas.DataFrameとして読み直すときに日付がおかしくなった(常に1970年になる)ので、とりあえず動くtableに。

df: pd.DataFrame = pd.read_json(StringIO(data_str), orient='table')

tableはスキーマの情報を持ってるらしく、これがpandas.DataFrameに渡されるのでエクセルで保存したときもうまくいったっぽい

https://arc.net/l/quote/hxhcavim

このスクラップは2025/02/09にクローズされました