Python - よく使うモジュール - 入出力 - pickle 速い


 クラウディア


1. 概要
2. 使い方
3. 注意
4. 参考サイト

1. 概要

 あるデータを読んだり書いたりするのに、「json5」形式を使用しておったのですが。  29 MB ほどありまして。  入出力に、非常に時間がかかって、ストレスになります。  「Gemini」伍長に相談したら、これを紹介されたのです。  参考サイトによれば、「オブジェクトの直列化」と題されております。  「Gemini」伍長は、バイナリ形式だと言っております。  参考サイトの注意書きで、出所のわからない「pickle」形式のファイルは、デコードしないようにとのことです。  自分で、入出力するのであれば、安全なのかな・・・。

2. 使い方

 少なくとも「python 3.11.9」以降であれば、インストールなしで標準で使えるようです。  出力は。

import pickle

with open(file_name, 'wb') as file:
  pickle.dump(data_name, file)
 出力は。

import pickle

with open(file_name, 'rb') as file:
  load = pickle.load(file)
 となります。  出力の際、ファイルのサイズ自体は、「json5」が、29MB であったのに対し、「pickle」が、21 MB なのであまり変わりませんが。  出力の時間は、計測しなかったものの、他の処理とあわせて半分の時間になりました。  入力時間は、「json5」が 3分近かったのに対し、12秒と劇的に速くなりました。

3. 注意

 ちょっとこれは、常にこうなるのか、わたしのソースだからなのか、調べていないのですが。  「json5.load()」の場合は、辞書型でロードするのですが、「pickle.load()」の場合、オブジェクトそのものでロードします。  なので、「json5.load()」でロードしたものを。

data['item']
 で、アクセスしていたものは、「pickle.load()」では。

data.item
 でアクセスします。

4. 参考サイト

 本ページは、「Gemini」伍長および、下記のサイト記事を参考にさせていただきました。
pickle --- Python オブジェクトの直列化

audiobook.jp
AbemaTV 無料体験
EaseUS
【usus ウズウズ】
JETBOY
ハイスピードプラン
U-NEXT
EMEET 1
earthcar(アースカー)
薬屋の独り言
TikTok Shop 【リピート用プログラム】
ネットオークションの相場、統計、価格比較といえばオークファン
5G CONNECT
損保との違い
サウンドハウス
健康サポート特集
Amazonギフトカード
ベルリッツ
アフィリエイトのアクセストレード
葬送のフリーレン Prime Video
それがだいじWi-Fi