naoki86star

インターネットの片隅でなにかしら書いてみる

json,pickle in python

import json
import pickle
...
data={...} # 1000000要素以上
...
open('file.json','w').write(json.dumps(data))
pickle.dump(data,open('file.pickle','w'))

読み書きの速さについて、pickleのほうが速いと思い込んでいた。
dataの内容の条件にも寄るでしょうが、ファイルサイズがjsonのほうが小さくなるような場合で
ファイルのサイズが数百Mbyteになるような場合にはjsonのほうが速そうです。
少数を3桁でroundしていたり、integerの値が3桁未満が多いとnateve型のサイズより小さくすむからなんでしょうかね。
まあ索引を考えてファイル分割すべきなんでしょうけど。

(11-14)今のpickle には3つ保存形式のオプションあると昨日知った、デフォルトだと下位互換あるけど変えると性能いいかもらしい