ホームページ >バックエンド開発 >Python チュートリアル >Python シリアル化モジュール pickle と json の違いを比較する

Python シリアル化モジュール pickle と json の違いを比較する

巴扎黑
巴扎黑オリジナル
2017-09-19 10:10:211161ブラウズ

これらはシリアル化用の 2 つのモジュールです:

• json: 文字列と Python データ型間の変換に使用されます

• pickle: Python 固有の型と Python データ型間の変換に使用されます

Json このモジュールは 4 つの関数を提供します: ダンプ、 dump、loads、load

pickle モジュールは 4 つの関数を提供します: dumps、dump、loads、load

pickle の使用法

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の使い方

jsonとpickleの使い方は同じです

import json
data = {'name':'python', 'site':'pythontab.com'}
jstr = json.dumps(data)
print jstr, type(jstr)

結果:

{"name":"python", "site":"pythontab.com"} <type &#39;str&#39;>

注: 辞書のように見えますが、実際は文字列であることに注意してください。json は文字列形式でしか使用できないため、辞書のように見えるだけです。これですべてです。

pickle と json の違いは何ですか?

json は異なる言語間でデータを交換できますが、pickle は Python 間でのみ使用されます。

json は最も基本的なデータ型のみをシリアル化できますが、pickle はクラスや関数を含むすべてのデータ型をシリアル化できます。

以上がPython シリアル化モジュール pickle と json の違いを比較するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。