Heim  >  Artikel  >  Backend-Entwicklung  >  Vergleichen Sie die Unterschiede zwischen den Python-Serialisierungsmodulen pickle und json

Vergleichen Sie die Unterschiede zwischen den Python-Serialisierungsmodulen pickle und json

巴扎黑
巴扎黑Original
2017-09-19 10:10:211134Durchsuche

Dies sind zwei Module für die Serialisierung:

• json: zum Konvertieren zwischen Strings und Python-Datentypen

• pickle: für Python-spezifische Typen und Konvertieren zwischen Python-Datentypen

Das Json-Modul bietet vier Funktionen: Dumps, Dump, Loads, Load

Das Pickle-Modul bietet vier Funktionen: Dumps, Dump, Loads, Load

Pickle-Nutzung

Dumps können den Datentyp in eine serialisierte Zeichenfolge konvertieren (wird nur von Python erkannt)

>>> import pickle
>>> data = {'name':'python', 'site':'pythontab.com'}
>>> pstr = pickle.dumps(data)
>>> print pstr
(dp0
S'name'
p1
S'python'
p2
sS'site'
p3
S'pythontab.com'
p4
s.

Konvertieren Sie die Daten in eine serialisierte Zeichenfolge und schreiben Sie in die Datei:

import pickle
data = {'name':'python', 'site':'pythontab.com'}
#打开文件,然后将data写入
with open('dump.data', 'wb') as f:
    pickle.dump(data, f)
#同样读取的时候也需要打开文件
with open('dump.data', 'rb') as f:
    data_load = pickle.load(f)
print data_load

Ergebnis :

{'name':'python', 'site':'pythontab.com'}

Der in der Datei angezeigte Inhalt stimmt mit dem oben genannten überein

Verwendung von JSON

Verwendung von JSON Es ist dasselbe wie Pickle

import json
data = {'name':'python', 'site':'pythontab.com'}
jstr = json.dumps(data)
print jstr, type(jstr)

Ergebnis:

{"name":"python", "site":"pythontab.com"} <type &#39;str&#39;>

Hinweis: Es sieht aus wie ein Wörterbuch, muss es aber sein. Beachten Sie, dass es sich tatsächlich um eine Zeichenfolge handelt. Da JSON nur im String-Format vorliegen kann, sieht es einfach wie ein Wörterbuch aus.

Was ist der Unterschied zwischen Pickle und JSON?

Json kann Daten zwischen verschiedenen Sprachen austauschen, während Pickle nur zwischen Python verwendet werden kann.

json kann nur die grundlegendsten Datentypen serialisieren, während pickle alle Datentypen, einschließlich Klassen und Funktionen, serialisieren kann.

Das obige ist der detaillierte Inhalt vonVergleichen Sie die Unterschiede zwischen den Python-Serialisierungsmodulen pickle und json. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn