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-Modul
dumps()-Funktion
#字典转成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 } }
dump()-Funktion
#字典转成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)
loads()-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}}
#把json串变成python的数据类型:字典,传一个文件对象,不需要再单独读文件 import json #打开文件 f =open('users.json','r',encoding='utf-8') print(json.load(f)) #执行结果: {'小明': {'sex': '男', 'addr': '上海', 'age': 26}, '小红': {'sex': '女', 'addr': '上海', 'age': 24}}
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.'
# dump功能 with open('test.txt', 'wb') as f: pickle.dump(data, f) print('写入成功') 写入成功
# loads功能 msg = pickle.loads(datastr) print(msg) ['A', 'B', 'C', 'D']
# load功能 with open('test.txt', 'rb') as f: data = pickle.load(f) print(data) ['A', 'B', 'C', 'D']
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!