画像比較ツールで、ImageHashの値をファイルに保存しようと思い、数値なのでstr()で文字列にしてからJSONとして保存しようとした。
保存はいいのだが、読み込んだあとhash値をint()で数値に戻して使おうとしたら、「hashはintじゃない」ってエラーになる。
このままじゃ使えない。
で、どう対処するか調べたらpickleファイルというものがあるらしい。
Python内のデーターオブジェクトのままファイルに保存できるというもの。
それならいちいち数値とかハッシュとか文字列とか意識する必要がない。
保存したいデーターオブジェクトは、
(ファイル名、ImageHash値、画像の幅、画像の高さ)のタプルのリストをValueとしてもつ辞書
なので、そのままファイルに読み書きできれば非常に楽。
実装も簡単だった。
1 2 3 4 |
import pickle with open('jsondata.pickle', mode='wb') as f: pickle.dump(write_json, f) |
でファイルに保存。
1 2 3 4 |
import pickle with open('jsondata.pickle', mode='rb') as f: read_json = pickle.load(f) |
で読み込み。
とても簡単。