Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mensirrikan Objek ORM SQLAlchemy ke JSON?

Bagaimana untuk Mensirrikan Objek ORM SQLAlchemy ke JSON?

DDD
Lepaskan: 2024-12-01 05:59:13
asal
194 orang telah melayarinya

How to Serialize SQLAlchemy ORM Objects to JSON?

Menukar Objek ORM SQLAlchemy kepada JSON

Mensirikan hasil pertanyaan SQLAlchemy kepada format JSON boleh menjadi tugas biasa apabila bekerja dengan aplikasi web. Walaupun Django menyediakan penyirian automatik, SQLAlchemy tidak mempunyai penyeri luar kotak.

Percubaan dan Ralat Awal

Anda telah cuba menggunakan jsonpickle.encode dan json.dumps untuk mensiri objek SQLAlchemy, tetapi mengalami ralat berikut:

TypeError: <Product('3', 'some name', 'some desc')> is not JSON serializable
Salin selepas log masuk

Penyelesaian: Menyesuaikan Pensirian Objek

Untuk mengatasi isu penyirian, anda boleh mencipta kaedah kelas tersuai yang menukar objek kepada kamus:

class User:
    def as_dict(self):
        return {c.name: getattr(self, c.name) for c in self.__table__.columns}
Salin selepas log masuk

Kaedah as_dict() ini menjana perwakilan kamus secara dinamik objek dengan mengulangi lajur jadualnya. Anda kemudiannya boleh menggunakan User.as_dict() untuk menyerikan objek dan menghantarnya kepada pengekodan JSON.

Sumber Tambahan

Untuk mendapatkan maklumat lanjut tentang menukar objek SQLAlchemy kepada kamus, sila rujuk sumber berikut :

  • [Cara menukar objek baris SQLAlchemy kepada Python dict?](https://stackoverflow.com/questions/38425453/how-to-convert-sqlalchemy-row-object-to-a-python-dict) menerangkan pendekatan alternatif untuk menjana kamus daripada objek SQLAlchemy.

Kesimpulan

Dengan melaksanakan kaedah bersiri tersuai, anda boleh berjaya menukar hasil pertanyaan SQLAlchemy kepada format JSON, membolehkan anda menggunakan data dalam grid data JavaScript seperti JQGrid.

Atas ialah kandungan terperinci Bagaimana untuk Mensirrikan Objek ORM SQLAlchemy ke JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan