Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Meluluskan Parameter Dinamakan dengan Pandas `read_sql` ke Pangkalan Data PostgreSQL?

Bagaimana untuk Meluluskan Parameter Dinamakan dengan Pandas `read_sql` ke Pangkalan Data PostgreSQL?

Susan Sarandon
Lepaskan: 2025-01-18 07:27:08
asal
813 orang telah melayarinya

How to Correctly Pass Named Parameters with Pandas `read_sql` to a PostgreSQL Database?

Gunakan Pandas read_sql untuk menghantar parameter pertanyaan SQL

Panda menyediakan fungsi read_sql untuk mendapatkan semula data daripada pangkalan data SQL. Fungsi ini membenarkan menghantar parameter kepada pertanyaan SQL, membolehkan pertanyaan dinamik. Walau bagaimanapun, kaedah lulus parameter mungkin berbeza.

Contohnya menggunakan enjin SQLAlchemy untuk menyambung ke pangkalan data PostgreSQL. Pertanyaan menggunakan BETWEEN %s AND %s sebagai parameter kedudukan dan boleh berfungsi seperti biasa.

Walau bagaimanapun, persoalannya ialah sama ada mungkin untuk lulus parameter bernama menggunakan kamus, seperti :dstart dan :dfinish. Dokumentasi Pandas menunjukkan kemungkinan ini, tetapi dalam praktiknya ia gagal.

Menurut dokumentasi read_sql, parameter params boleh menerima senarai, tuple atau kamus. Terdapat juga pelbagai sintaks untuk menghantar nilai dalam pertanyaan SQL itu sendiri, termasuk ?, :1, :name, %s dan %(name)s.

Yang penting, sintaks yang disokong bergantung pada pemacu pangkalan data yang digunakan. Dalam kes ini, kemungkinan besar pemandu adalah psycopg2.

Dokumentasi psycopg2 menunjukkan bahawa parameter yang dinamakan disokong menggunakan gaya %(name)s, bukannya gaya :name yang telah dicuba. Oleh itu, kod berikut sepatutnya berfungsi:

<code class="language-python">df = psql.read_sql(('select "Timestamp","Value" from "MyTable" '
                     'where "Timestamp" BETWEEN %(dstart)s AND %(dfinish)s'),
                   db,
                   params={"dstart": datetime(2014, 6, 24, 16, 0), "dfinish": datetime(2014, 6, 24, 17, 0)},
                   index_col=['Timestamp'])</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Meluluskan Parameter Dinamakan dengan Pandas `read_sql` ke Pangkalan Data PostgreSQL?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan