このプロジェクトは、ECサイトの商品データ更新処理を題材に、
実務で経験した「データの差分検知・JSON出力」を再現し、
標準ライブラリ版とpandas版の処理を比較するものです。
実務では以下のような場面を想定しています:
- 自社の商品マスタ(DB)と サイト掲載用JSON の同期
- 差分のみを抽出して配布することで更新コストを削減
- **処理方式の選定(軽量・高速・可読性)**を検証
-
create_db.py
サンプルDB作成。Fakerで商品データを生成し、値段・割引の欠損をランダムに付与。
→ 実務の「商品マスタDB更新」を再現。 -
use_json.py
Python標準ライブラリ(sqlite3, json)による実装。
forループで逐次処理し、JSONファイルとの差分を検出。
→ 実務の「軽量スクリプト/Lambda対応」を意識。 -
use_pandas.py
pandasによる実装。
DataFrameを用いて欠損補完・差分検知をベクトル演算で処理。
→ 実務の「データ分析基盤・バッチ処理」を意識。 -
main.py
両者を呼び出し、処理時間を比較。
→ 実務での「方式選定検証」を再現。
- 商品DB作成
→ sample.db が生成されます。
python create_db.py --n 10000
- 処理時間比較
python main.py
- 出力
- 差分があれば new.json に出力
- 実行ログに「差分件数」と「処理時間」を表示
5 records with changes found. Writing to new.json
標準ライブラリ版処理時間: 0.1234 秒
7 records with changes found. Writing to new.json
pandas版処理時間: 0.0891 秒
Qiitaにまとめました。