Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mari kita bincangkan tentang pelaksanaan operasi siri data Python

Mari kita bincangkan tentang pelaksanaan operasi siri data Python

PHPz
PHPzke hadapan
2023-04-12 09:31:122053semak imbas

​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 siri teks, manakala pickle ialah format siri binari
  • json ialah sesuatu yang boleh kita baca secara intuitif, manakala pickle No;
  • json boleh dikendalikan dan digunakan secara meluas di luar sistem Python, manakala pickle adalah khusus Python
  • Secara lalai, json hanya boleh mewakili jenis Python terbina dalam Subset tidak boleh mewakili kelas tersuai; ; tetapi jeruk boleh mewakili sejumlah besar jenis data Python.

Mari kita bincangkan tentang pelaksanaan operasi siri data Python

Modul Json

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()

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()

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()

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}}

fungsi load()

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

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()

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( )

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()

fungsi loads() boleh menukar data jeruk kepada struktur data python. Contohnya:

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

['A', 'B', 'C', 'D']

fungsi load()

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']

Ringkasan

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!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam