LL言語にありがちですが標準ライブラリのjsonは言語ネイティブ実装なこともあり遅めです。
Pythonでライブラリを使うならfastapiとも親和性が高いorjsonが一つの定番です
import orjson as jsonという形で置き換え可能ですが
それでも細かな差異は出ます
dumps
• json.dumps() → str を返す
• orjson.dumps() → bytes を返す
orjson.dumps.decode()としましょう
datetime
互換性重視でjsonの動作に近づけるならOPT_PASSTHROUGH_DATETIMEをoptionで渡すとよいです
ただ、orjsonの標準動作が一番高速なのでできれば標準のほうに寄せましょう
numpy
これも互換性重視ならOPT_SERIALIZE_NUMPYが近い動作になります
これもorjsonの標準動作が高速なのでなるべく寄せましょう
両方optionを渡す例
orjson.dumps(data, option=orjson.OPT_PASSTHROUGH_DATETIME | orjson.OPT_SERIALIZE_NUMPY).decode()
当然ですがどのjsonライブラリを使うにせよ最初から導入するのが一番効率良いです
jsonデータを良く扱うなら標準jsonの本番利用は控えましょう
python地味ネタ