Suche…


Syntax

  • unpickled_string = pickle.loads (string)
  • unpickled_string = pickle.load (file_object)
  • pickled_string = pickle.dumps ([('', 'cmplx'), {('object',): Keine}], pickle.HIGHEST_PROTOCOL)
  • pickle.dump (('', 'cmplx'), {('object',): Keine}], file_object, pickle.HIGHEST_PROTOCOL)
  • unjsoned_string = json.loads (string)
  • 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)

Parameter

Parameter Einzelheiten
protocol Verwendung von pickle oder cPickle , ist es die Methode , die Objekte werden Serialized / deserialisiert. pickle.HIGHEST_PROTOCOL möchten pickle.HIGHEST_PROTOCOL hier pickle.HIGHEST_PROTOCOL , was die neueste Methode bedeutet.

Bemerkungen

Warum JSON verwenden?

  • Sprachübergreifende Unterstützung
  • Für Menschen lesbar
  • Anders als bei Pickle besteht keine Gefahr, beliebigen Code auszuführen

Warum nicht JSON verwenden?

  • Unterstützt keine Pythonic-Datentypen
  • Schlüssel in Wörterbüchern dürfen nur Datentypen für Zeichenfolgen sein.

Warum Pickle?

  • Gute Möglichkeit, Pythonic zu serialisieren (Tupel, Funktionen, Klassen)
  • Schlüssel in Wörterbüchern können jeden Datentyp haben.

Warum nicht Pickle?

  • Sprachübergreifende Unterstützung fehlt
  • Es ist nicht sicher, beliebige Daten zu laden

Serialisierung mit JSON

JSON ist eine vielsprachige Methode zur Serialisierung von Daten

Unterstützte Datentypen: int , float , boolean , string , list und dict . Weitere Informationen finden Sie unter -> JSON-Wiki

Hier ist ein Beispiel, das die grundlegende Verwendung von JSON veranschaulicht : -

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)

Ausführliche Informationen zu JSON finden Sie im JSON-Modul .

Serialisierung mit Pickle

Hier ist ein Beispiel, das die grundlegende Verwendung von Pickle demonstriert: -

# 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)

Siehe Pickle für detaillierte Informationen über Pickle.

WARNUNG : Die offizielle Dokumentation zu Pickle macht deutlich, dass es keine Sicherheitsgarantien gibt. Laden Sie keine Daten, deren Herkunft Sie nicht kennen.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow