Zoeken…


Syntaxis

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

parameters

Parameter Details
protocol Met pickle of cPickle is dit de methode waarbij objecten worden geserialiseerd / niet-geserialiseerd. Waarschijnlijk wilt u hier pickle.HIGHEST_PROTOCOL gebruiken. pickle.HIGHEST_PROTOCOL , wat de nieuwste methode betekent.

Opmerkingen

Waarom JSON gebruiken?

  • Ondersteuning voor meerdere talen
  • Leesbare
  • In tegenstelling tot augurk heeft het niet het gevaar dat willekeurige code wordt uitgevoerd

Waarom geen JSON gebruiken?

  • Ondersteunt geen Pythonic-gegevenstypen
  • Sleutels in woordenboeken mogen niet anders zijn dan stringgegevenstypes.

Waarom augurk?

  • Geweldige manier voor het serialiseren van Pythonic (tupels, functies, klassen)
  • Sleutels in woordenboeken kunnen van elk gegevenstype zijn.

Waarom geen augurk?

  • Ondersteuning voor meerdere talen ontbreekt
  • Het is niet veilig voor het laden van willekeurige gegevens

Serialisatie met behulp van JSON

JSON is een meertalige, veelgebruikte methode om gegevens te serialiseren

Ondersteunde gegevenstypen: int , float , boolean , string , list en dict . Zie -> JSON Wiki voor meer

Hier is een voorbeeld van het basisgebruik van 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)

Zie JSON-Module voor gedetailleerde informatie over JSON.

Serialisatie met augurk

Hier is een voorbeeld dat het basisgebruik van augurk toont: -

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

Zie Pickle voor gedetailleerde informatie over Pickle.

WAARSCHUWING : De officiële documentatie voor augurk maakt duidelijk dat er geen veiligheidsgaranties zijn. Laad geen gegevens waarvan u de oorsprong niet vertrouwt.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow