お弁当のサイトを運営しているマイ食のエンジニアの者です。
外部からなんか弁当の情報をとってきたりするとき、URLアクセスが発生するためやけに取得に時間がかかる。
食べログなどのAPIを使って情報を取得した時も、一回一回APIを使っていてはすぐにキーの上限を越える。
DBに保存したいところだが、ちょいとメンドイし利用規約の問題などもあって…
と、そういう時にキャッシュ的(一時的に保存的な間隔で)にcPickleをつかって情報をセーブする。
使い方は以下のとおり
# dumpしたい時
somedata = [{'title':'お弁当のマイ食', 'url':'https://www.maishoku.com'},]
dump( 'anyname.is.okay.dmp', samedata )
# loadしたい時
data = load( 'anyname.is.okay.dmp' )
とする。ライブラリは以下のとおり。
|
Pickleはなんぞや?という人がいるかも知れない。
要するに、Pythonのデータ構造をそのまま何でも突っ込めてしまう物。
リストだろうが、クラスだろうがそのまま突っ込み保存してしまうことができる。
x = [ data1, data2, data3 ]
というデータがあっとして、後で別のpythonスクリプトでも使いたい時などあるとおもう。
とくにAPIアクセスなどで頑張って取得したデータなど、取得自体に結構時間がかかる時はどうしても一時保存したい。
データベースを使うのがお行儀がいいかもしれないけど、クラスごと保存できないし、いちいちMySQLに保存するのは…など、そういう時は
とりあえずはPickleに…的な利用方法ですね。
いつ保存するか…今でしょ!
と旬な話題を入れておきます。
お弁当の情報を取得する道は単純ではありませんな。
株式会社OctOpt
コンピューターサイエンス会社OctOptの技術公式ブログ
等々力 康弘
@rocky_house