Sök…


Syntax

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

parametrar

Parameter detaljer
protocol Med pickle eller cPickle är det metoden att objekt serialiseras / oserialiseras. Du vill förmodligen använda pickle.HIGHEST_PROTOCOL här, vilket betyder den senaste metoden.

Anmärkningar

Varför använda JSON?

  • Korsspråkigt stöd
  • Mänsklig läsbar
  • Till skillnad från pickle har den inte risken att köra godtycklig kod

Varför inte använda JSON?

  • Stödjer inte Pythonic datatyper
  • Nycklar i ordböcker får inte vara andra än strängdatatyper.

Varför pickle?

  • Bra sätt att serialisera Pythonic (tuples, funktioner, klasser)
  • Nycklar i ordböcker kan vara av vilken datatyp som helst.

Varför inte Pickle?

  • Korsspråkstöd saknas
  • Det är inte säkert att ladda godtyckliga data

Serialisering med JSON

JSON är ett korsspråkigt, allmänt använt förfarande för att serialisera data

Datatyper som stöds: int , float , boolean , string , list and dict . Se -> JSON Wiki för mer

Här är ett exempel som visar den grundläggande användningen av 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)

Se JSON-modul för detaljerad information om JSON.

Serialisering med Pickle

Här är ett exempel som visar den grundläggande användningen av 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)

Se Pickle för detaljerad information om Pickle.

VARNING : Den officiella dokumentationen för pickle gör det klart att det inte finns några säkerhetsgarantier. Ladda inte några uppgifter som du inte litar på dess ursprung.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow