Rumah > Artikel > pembangunan bahagian belakang > Pengaturcaraan pelayan Python: Penghuraian format YAML menggunakan PyYAML
Pengaturcaraan pelayan Python: menggunakan PyYAML untuk penghuraian format YAML
Dengan perkembangan pesat teknologi Internet, pengaturcaraan pelayan menjadi semakin penting. Sebagai bahasa pengaturcaraan yang berkuasa, Python menjadi semakin popular di kalangan pembangun. PyYAML ialah salah satu penghurai format YAML yang paling biasa digunakan dalam Python. Artikel ini akan memperkenalkan cara menggunakan PyYAML untuk menghuraikan format YAML untuk membantu pembangun memprogramkan pelayan Python dengan lebih baik.
Apakah itu YAML?
YAML (Yet Another Markup Language) ialah format pertukaran data yang ringan Berbanding dengan format data seperti XML dan JSON, YAML ialah format yang lebih mudah dibaca dan ditulis. Data dalam format YAML boleh disiri dan dibaca serta difahami oleh manusia. YAML pada asalnya dibangunkan untuk menyelesaikan masalah XML yang menyusahkan dan sukar dibaca.
Contoh format YAML:
- name: Alice age: 25 occupation: programmer - name: Bob age: 30 occupation: designer
Menggunakan PyYAML untuk menghuraikan format YAML
PyYAML ialah salah satu penghurai format YAML yang paling biasa digunakan dalam Python. Ia adalah penghurai YAML berciri penuh yang menyokong semua ciri teras YAML 1.1 dan 1.2. Sangat mudah untuk menggunakan PyYAML untuk menghuraikan format YAML Anda hanya perlu menukar data format YAML kepada objek Python melalui kaedah yaml.load()
.
import yaml with open("data.yaml", 'r') as stream: data = yaml.load(stream) print(data)
Kod di atas membaca dan menukar data format YAML dalam fail data.yaml
kepada objek Python, dan akhirnya mencetak output.
Dalam PyYAML, anda juga boleh menggunakan kaedah yaml.dump()
untuk menukar objek Python kepada data format YAML.
import yaml data = [ {'name': 'Alice', 'age': 25, 'occupation': 'programmer'}, {'name': 'Bob', 'age': 30, 'occupation': 'designer'} ] print(yaml.dump(data))
Kod di atas menukar senarai Python kepada data format YAML dan mencetak output.
Ciri lanjutan PyYAML
Selain penghuraian dan penyirian format YAML asas, PyYAML juga menyediakan banyak ciri lanjutan, termasuk penukaran jenis, penanda tersuai, pengesahan dan sambungan. Seterusnya, kita akan melihat beberapa ciri ini dengan lebih terperinci.
Penukaran jenis
PyYAML menyokong penukaran automatik data dalam format YAML kepada jenis terbina dalam Python, termasuk rentetan, integer, nombor titik terapung, kamus dan senarai, dsb. Sebagai contoh, baca data format YAML berikut ke dalam objek Python:
date: 2021-06-25 count: 300 price: 99.99
Semasa proses membaca, PyYAML akan menukar medan date
secara automatik kepada objek datetime.date
Python dan medan count
kepada Python secara automatik Jenis integer, medan price
ditukar kepada jenis titik terapung Python.
Teg tersuai
PyYAML menyokong teg tersuai, yang membolehkan anda menukar objek Python tersuai kepada data format YAML dan menukarnya kembali apabila membaca objek asal data YAML. Sebagai contoh, takrifkan kelas tersuai berikut:
import datetime class CustomDate: def __init__(self, year, month, day): self.date = datetime.date(year, month, day)
Kemudian, kita boleh menggunakan kod berikut untuk menukar kelas tersuai ke dalam format YAML:
import yaml def custom_date_representer(dumper, data): return dumper.represent_scalar('!CustomDate', '{}/{}/{}'.format(data.date.year, data.date.month, data.date.day)) def custom_date_constructor(loader, node): value = loader.construct_scalar(node) year, month, day = map(int, value.split('/')) return CustomDate(year, month, day) data = [ CustomDate(2021, 6, 25), CustomDate(2021, 6, 26) ] yaml.add_representer(CustomDate, custom_date_representer) yaml.add_constructor('!CustomDate', custom_date_constructor) print(yaml.dump(data))
Dalam kod di atas, kami mendaftarkan teg tersuai !CustomDate
, dan mentakrifkan kaedah representer
dan constructor
yang sepadan untuk menukar kelas tersuai ke dalam format YAML dan memulihkannya kepada objek asal.
Pengesahan dan sambungan
PyYAML juga menyediakan fungsi pengesahan dan sambungan, termasuk mengesahkan ketepatan data format YAML dan mendaftarkan teg baharu. Contohnya, anda boleh menggunakan kod berikut untuk mengesahkan ketepatan data format YAML:
import yaml with open("data.yaml", 'r') as stream: try: data = yaml.safe_load(stream) except yaml.YAMLError as exc: print(exc)
Kod di atas menggunakan kaedah yaml.safe_load()
untuk memuatkan data format YAML dan mengeluarkan maklumat yang sepadan berdasarkan ketepatan data .
Pada masa yang sama, anda juga boleh menggunakan kod berikut untuk mendaftar teg baharu:
import yaml class CustomType: pass def represent_custom_type(dumper, data): return dumper.represent_scalar('!CustomType', None) yaml.add_representer(CustomType, represent_custom_type) data = CustomType() print(yaml.dump(data))
Dalam kod di atas, kami mendaftar kelas tersuai CustomType
sebagai teg baharu !CustomType
dan tentukan Kaedah representer
yang sepadan menukarnya kepada data format YAML.
Ringkasan
Artikel ini memperkenalkan cara menggunakan PyYAML untuk menghuraikan dan mensiri format YAML, dan memperkenalkan beberapa ciri lanjutan PyYAML, termasuk penukaran jenis, teg tersuai, pengesahan dan sambungan, dsb. Melalui pengenalan artikel ini, saya percaya pembaca boleh mempunyai pemahaman yang lebih mendalam tentang penggunaan PyYAML dan mendapatkan aplikasi yang lebih baik dalam pengaturcaraan pelayan Python.
Atas ialah kandungan terperinci Pengaturcaraan pelayan Python: Penghuraian format YAML menggunakan PyYAML. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!