Lassen Sie uns über Pythons Implementierung von Datenserialisierungsoperationen sprechen

PHPz
Freigeben: 2023-04-12 09:31:12
nach vorne
2053 Leute haben es durchsucht

​In der täglichen Entwicklung sind Serialisierung und Deserialisierung gängige Datenoperationen. Python bietet zwei Module, um Entwicklern die Implementierung von Datenserialisierungsoperationen zu erleichtern, nämlich das JSON-Modul und das Pickle-Modul. Die Hauptunterschiede zwischen diesen beiden Modulen sind wie folgt:

  • json ist ein Textserialisierungsformat, während pickle ein binäres Serialisierungsformat ist;
  • json kann intuitiv gelesen werden,
  • json ist jedoch nicht interoperabel und wird häufig außerhalb verwendet Das Python-System, während Pickle exklusiv für Python ist. Standardmäßig kann JSON nur eine Teilmenge der integrierten Python-Typen darstellen und keine benutzerdefinierten Klassen darstellen. Pickle kann jedoch eine große Menge an Python-Datentypen darstellen.

Lassen Sie uns über Pythons Implementierung von Datenserialisierungsoperationen sprechenJson-Modul

Json ist ein leichtes Datenaustauschformat, das aufgrund seiner geringen Datenmenge und der einfachen Analyse des Datenformats häufig bei interaktiven Vorgängen zwischen verschiedenen Systemen verwendet wird Datenformat. Es enthält mehrere häufig verwendete Funktionen wie folgt:

dumps()-Funktion

dumps()-Funktion kann Python-Objekte in Json-Strings kodieren. Zum Beispiel:

#字典转成json字符串 加上ensure_ascii=False以后,可以识别中文, indent=4是间隔4个空格显示 

import json 
d={'小明':{'sex':'男','addr':'上海','age':26},'小红':{ 'sex':'女','addr':'上海', 'age':24},}
print(json.dumps(d,ensure_ascii=False,indent=4)) 

#执行结果:
{
"小明": {
"sex": "男",
"addr": "上海",
"age": 26
},
"小红": {
"sex": "女",
"addr": "上海",
"age": 24
}
}
Nach dem Login kopieren

dump()-Funktion

dump()-Funktion kann Python-Objekte in JSON-Strings kodieren und sie automatisch in Dateien schreiben, ohne dass separate Dateien geschrieben werden müssen. Zum Beispiel:

#字典转成json字符串,不需要写文件,自动转成的json字符串写入到‘users.json’的文件中 
import json 
d={'小明':{'sex':'男','addr':'上海','age':26},'小红':{ 'sex':'女','addr':'上海', 'age':24},}
#打开一个名字为‘users.json’的空文件
fw =open('users.json','w',encoding='utf-8')

json.dump(d,fw,ensure_ascii=False,indent=4)
Nach dem Login kopieren

loads()-Funktion

loads()-Funktion kann JSON-String in Python-Datentyp konvertieren. Zum Beispiel: Die Funktion „
#这是users.json文件中的内容
{
"小明":{
"sex":"男",
"addr":"上海",
"age":26
},
"小红":{
"sex":"女",
"addr":"上海",
"age":24
}
}

#!/usr/bin/python3
#把json串变成python的数据类型 
import json
#打开‘users.json’的json文件
f =open('users.json','r',encoding='utf-8')
#读文件
res=f.read()
print(json.loads(res)) 

#执行结果:
{'小明': {'sex': '男', 'addr': '上海', 'age': 26}, '小红': {'sex': '女', 'addr': '上海', 'age': 24}}
Nach dem Login kopieren

load()“ hat ähnliche Funktionen wie „loads()“. Die Funktion „load()“ kann einen JSON-String in einen Python-Datentyp konvertieren Dateiobjekt und muss nicht separat gelesen werden. Zum Beispiel:

#把json串变成python的数据类型:字典,传一个文件对象,不需要再单独读文件 
import json 
#打开文件
f =open('users.json','r',encoding='utf-8') 
print(json.load(f))

#执行结果:
{'小明': {'sex': '男', 'addr': '上海', 'age': 26}, '小红': {'sex': '女', 'addr': '上海', 'age': 24}}
Nach dem Login kopieren

Pickle-Modul

Pickle-Modul hat ähnliche Funktionen wie das Json-Modul. Es enthält auch vier Funktionen, nämlich dump(), dumps(), Loads() und Load(). Ihre Hauptunterschiede sind wie folgt:

dumps und Der Unterschied zwischen dump besteht darin, dass ersteres das Objekt serialisiert, während letzteres das Objekt serialisiert und in einer Datei speichert.

Der Unterschied zwischen Loads und Load besteht darin, dass ersteres die serialisierte Zeichenfolge deserialisiert, während letzteres die serialisierte Zeichenfolge aus der Datei liest und deserialisiert.

dumps()-Funktion

dumps()-Funktion kann Daten in eine Zeichenfolge konvertieren, die nur von der Python-Sprache in einer speziellen Form erkannt wird, zum Beispiel:

import pickle
# dumps功能
import pickle
data = ['A', 'B', 'C','D']
print(pickle.dumps(data))

b'x80x03]qx00(Xx01x00x00x00Aqx01Xx01x00x00x00Bqx02Xx01x00x00x00Cqx03Xx01x00x00x00Dqx04e.'
Nach dem Login kopieren

dump()-Funktion

dump()-Funktion kann Daten durch eine spezielle Form konvertieren Das Formular wird in eine Zeichenfolge umgewandelt, die nur von der Python-Sprache erkannt wird, und in eine Datei geschrieben. Zum Beispiel:

# dump功能
with open('test.txt', 'wb') as f:
pickle.dump(data, f)
print('写入成功')

写入成功
Nach dem Login kopieren

loads()-Funktion

loads()-Funktion kann Pickle-Daten in eine Python-Datenstruktur konvertieren. Zum Beispiel:

# loads功能
msg = pickle.loads(datastr)
print(msg)

['A', 'B', 'C', 'D']
Nach dem Login kopieren

load()-Funktion

load()-Funktion kann Daten aus einer Datendatei lesen und sie in eine Python-Datenstruktur konvertieren. Zum Beispiel:

# load功能
with open('test.txt', 'rb') as f:
 data = pickle.load(f)
print(data)

['A', 'B', 'C', 'D']
Nach dem Login kopieren
Zusammenfassung

Dieser Abschnitt führt Sie in die allgemeinen Vorgänge des json&pickle-Moduls in Python ein, das Unterstützung für die Serialisierung und Deserialisierung von Daten bietet.

Das obige ist der detaillierte Inhalt vonLassen Sie uns über Pythons Implementierung von Datenserialisierungsoperationen sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!