これらはシリアル化用の 2 つのモジュールです:
• json: 文字列と Python データ型間の変換に使用されます
• pickle: Python 固有の型と Python データ型間の変換に使用されます
Json このモジュールは 4 つの関数を提供します: ダンプ、 dump、loads、load
pickle モジュールは 4 つの関数を提供します: dumps、dump、loads、load
dumps はデータ型をシリアル化に変換できます (Python でのみ認識されます) 文字列
>>> import pickle >>> data = {'name':'python', 'site':'pythontab.com'} >>> pstr = pickle.dumps(data) >>> print pstr (dp0 S'name' p1 S'python' p2 sS'site' p3 S'pythontab.com' p4 s.
データをシリアル化された文字列に変換します文字列を取得してファイルに書き込みます:
import pickle data = {'name':'python', 'site':'pythontab.com'} #打开文件,然后将data写入 with open('dump.data', 'wb') as f: pickle.dump(data, f) #同样读取的时候也需要打开文件 with open('dump.data', 'rb') as f: data_load = pickle.load(f) print data_load
結果:
{'name':'python', 'site':'pythontab.com'}
ファイルに表示される内容は上記と一致します
jsonとpickleの使い方は同じです
import json data = {'name':'python', 'site':'pythontab.com'} jstr = json.dumps(data) print jstr, type(jstr)
結果:
{"name":"python", "site":"pythontab.com"} <type 'str'>
注: 辞書のように見えますが、実際は文字列であることに注意してください。json は文字列形式でしか使用できないため、辞書のように見えるだけです。これですべてです。
json は異なる言語間でデータを交換できますが、pickle は Python 間でのみ使用されます。
json は最も基本的なデータ型のみをシリアル化できますが、pickle はクラスや関数を含むすべてのデータ型をシリアル化できます。
以上がPython シリアル化モジュール pickle と json の違いを比較するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。