Python Language
データのシリアル化
サーチ…
構文
- unpickled_string = pickle.loads(文字列)
- unpickled_string = pickle.load(file_object)
- pickle_string = pickle.dumps([( ''、 'cmplx')、{( 'object'、):なし}]、pickle.HIGHEST_PROTOCOL)
- pickle.dump(( ''、 'cmplx')、{( 'object'、):なし}]、file_object、pickle.HIGHEST_PROTOCOL)
- unjsoned_string = json.loads(文字列)
- unjsoned_string = json.load(file_object)
- jsoned_string = json.dumps(( 'a'、 'b'、 'c'、[1、2、3]))
- json.dump(( 'a'、 'b'、 'c'、[1、2、3])、file_object)
パラメーター
パラメータ | 詳細 |
---|---|
protocol | pickle またはcPickle を使用すると、オブジェクトがシリアル化/シリアル化されていないメソッドです。ここでpickle.HIGHEST_PROTOCOL を使用したいと思うかもしれません。これは、最新のメソッドを意味します。 |
備考
JSONを使用する理由
- クロスランゲージサポート
- 人間が読める
- pickleとは異なり、任意のコードを実行する危険性はありません
なぜJSONを使用しないのですか?
- Pythonicデータ型をサポートしていません
- 辞書のキーは、文字列データ型以外であってはなりません。
なぜピックル?
- Pythonic(タプル、関数、クラス)を直列化するための素晴らしい方法
- 辞書のキーはどのようなデータ型でもかまいません。
なぜピクルスじゃないの?
- クロス言語サポートがありません
- 任意のデータをロードすることは安全ではありません
JSONを使用したシリアル化
JSONはクロスランゲージで、データをシリアライズするために広く使用されているメソッドです
サポートされるデータ型: int 、 float 、 boolean 、 string 、 listおよびdictもっと見るには - > JSON Wikiを参照してください
JSONの基本的な使い方を示す例です:
import json
families = (['John'], ['Mark', 'David', {'name': 'Avraham'}])
# Dumping it into string
json_families = json.dumps(families)
# [["John"], ["Mark", "David", {"name": "Avraham"}]]
# Dumping it to file
with open('families.json', 'w') as json_file:
json.dump(families, json_file)
# Loading it from string
json_families = json.loads(json_families)
# Loading it from file
with open('families.json', 'r') as json_file:
json_families = json.load(json_file)
JSONの詳細については、 JSON-Moduleを参照してください。
Pickleを使用したシリアライゼーション
pickleの基本的な使い方を示す例です:
# Importing pickle
try:
import cPickle as pickle # Python 2
except ImportError:
import pickle # Python 3
# Creating Pythonic object:
class Family(object):
def __init__(self, names):
self.sons = names
def __str__(self):
return ' '.join(self.sons)
my_family = Family(['John', 'David'])
# Dumping to string
pickle_data = pickle.dumps(my_family, pickle.HIGHEST_PROTOCOL)
# Dumping to file
with open('family.p', 'w') as pickle_file:
pickle.dump(families, pickle_file, pickle.HIGHEST_PROTOCOL)
# Loading from string
my_family = pickle.loads(pickle_data)
# Loading from file
with open('family.p', 'r') as pickle_file:
my_family = pickle.load(pickle_file)
Pickleの詳細については、 Pickleを参照してください。
警告 :pickleの公式文書は、セキュリティ保証がないことを明確に示しています。起源を信頼しないデータは読み込まないでください。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow