Python Language
Dataserialisering
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