Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menukar Objek Baris SQLAlchemy kepada Kamus Python?

Bagaimanakah Saya Boleh Menukar Objek Baris SQLAlchemy kepada Kamus Python?

Barbara Streisand
Barbara Streisandasal
2024-11-19 01:15:03814semak imbas

How Can I Convert SQLAlchemy Row Objects to Python Dictionaries?

Menukar Objek Baris SQLAlchemy kepada Kamus Python

Apabila bekerja dengan SQLAlchemy, anda mungkin menghadapi situasi di mana anda perlu menukar objek baris kepada kamus Python . Ini amat berguna untuk mengulangi pasangan nilai nama lajur atau menghantar data baris ke aplikasi luaran.

Menggunakan Kamus Dalaman SQLAlchemy

Satu pendekatan untuk menukar baris SQLAlchemy objek kepada kamus adalah dengan mengakses atribut dikt dalamannya. Atribut ini memegang perwakilan seperti kamus bagi atribut objek. Untuk menggunakan pendekatan ini, hanya lelaran pada atribut dict:

for u in session.query(User).all():
    print(u.__dict__)

Ini akan mengeluarkan kamus yang mengandungi nama lajur dan nilai untuk setiap baris.

Menggunakan Perpustakaan Marshal SQLAlchemy

Sebagai alternatif, SQLAlchemy menyediakan perpustakaan marshal, yang menawarkan kaedah untuk menukar objek SQLAlchemy kepada format yang berbeza, termasuk kamus. Kod berikut menunjukkan cara menggunakan marshal.to_dict() untuk menukar objek Pengguna kepada kamus:

from sqlalchemy.ext import marshal

for u in session.query(User).all():
    print(marshal.to_dict(u))

Kaedah ini akan menghasilkan kamus dengan kunci untuk setiap nama lajur dan nilai untuk setiap nilai lajur.

Nota: Penggunaan marshal.to_dict() memerlukan SQLAlchemy versi 0.6 atau lebih tinggi. Jika anda menggunakan versi terdahulu, anda boleh menggunakan atribut dikt sebaliknya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Objek Baris SQLAlchemy kepada Kamus Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn