サーチ…


構文

  • 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はクロスランゲージで、データをシリアライズするために広く使用されているメソッドです

サポートされるデータ型: intfloatbooleanstringlistおよび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