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