Dalam pembangunan harian, mensiri dan menyahsiri data adalah operasi data biasa Python menyediakan dua modul untuk memudahkan pembangun melaksanakan operasi bersiri data, iaitu modul json dan modul pickle. Perbezaan utama antara dua modul ini adalah seperti berikut:
Json ialah format pertukaran data yang ringan Disebabkan jumlah data yang dihantar dan penghuraian mudah format data Dengan ciri-cirinya, ia digunakan secara meluas dalam operasi interaktif antara pelbagai sistem untuk memindahkan data sebagai format data. Ia mengandungi berbilang fungsi yang biasa digunakan, seperti berikut:
fungsi dump() boleh mengekod objek Python ke dalam rentetan Json. Contohnya:
#字典转成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 } }
fungsi dump() boleh mengekod objek Python ke dalam rentetan json dan menulisnya secara automatik ke fail, tanpa perlu menulis fail berasingan. Contohnya: fungsi
#字典转成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() boleh menukar rentetan json kepada jenis data Python. Contohnya:
#这是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}}
load() mempunyai fungsi yang sama dengan load() fungsi boleh menukar rentetan json kepada jenis data Python bahawa bekas Parameter adalah objek fail, tidak perlu membaca fail ini secara berasingan. Contohnya:
#把json串变成python的数据类型:字典,传一个文件对象,不需要再单独读文件 import json #打开文件 f =open('users.json','r',encoding='utf-8') print(json.load(f)) #执行结果: {'小明': {'sex': '男', 'addr': '上海', 'age': 26}, '小红': {'sex': '女', 'addr': '上海', 'age': 24}}
Modul jeruk mempunyai fungsi yang sama dengan modul Json dan juga mengandungi empat fungsi, iaitu dump(), dumps(), loads() dan load( ). Perbezaan utama mereka adalah seperti berikut:
Perbezaan antara dump dan dump ialah yang pertama mensirikan objek, manakala yang kedua mensiri objek dan menyimpannya ke fail.
Perbezaan antara beban dan beban ialah yang pertama menyahsiri rentetan bersiri, manakala yang terakhir membaca rentetan bersiri daripada fail dan menyahsirinya.
fungsi dump() boleh menukar data kepada rentetan yang hanya dikenali oleh bahasa python dalam bentuk khas, contohnya:
import pickle # dumps功能 import pickle data = ['A', 'B', 'C','D'] print(pickle.dumps(data)) b'x80x03]qx00(Xx01x00x00x00Aqx01Xx01x00x00x00Bqx02Xx01x00x00x00Cqx03Xx01x00x00x00Dqx04e.'
fungsi dump() boleh menukar data kepada rentetan yang dikenali hanya oleh bahasa python dalam bentuk khas dan menulisnya pada fail. Contohnya:
# dump功能 with open('test.txt', 'wb') as f: pickle.dump(data, f) print('写入成功') 写入成功
fungsi loads() boleh menukar data jeruk kepada struktur data python. Contohnya:
# loads功能 msg = pickle.loads(datastr) print(msg) ['A', 'B', 'C', 'D']
fungsi load() boleh membaca data daripada fail data dan menukarnya kepada struktur data python. Contohnya:
# load功能 with open('test.txt', 'rb') as f: data = pickle.load(f) print(data) ['A', 'B', 'C', 'D']
Bahagian ini memperkenalkan anda kepada operasi biasa modul json&pickle dalam Python, yang menyediakan sokongan untuk mensiri dan menyahsiri data.
Atas ialah kandungan terperinci Mari kita bincangkan tentang pelaksanaan operasi siri data Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!