Apabila menggunakan Panda untuk melakukan pertanyaan SQL dengan parameter, terdapat dua pendekatan utama: lulus parameter sebagai senarai atau tuple , atau menghantarnya sebagai kamus.
Kaedah pertama melibatkan mencipta pertanyaan SQL dengan ruang letak, seperti BETWEEN % s DAN %s, dan menghantar nilai parameter sebagai senarai atau tupel. Ini boleh dilihat dalam contoh berikut:
<code class="python">df = psql.read_sql(('select "Timestamp","Value" from "MyTable" ' 'where "Timestamp" BETWEEN %s AND %s'), db,params=[datetime(2014,6,24,16,0),datetime(2014,6,24,17,0)], index_col=['Timestamp'])</code>
Kaedah kedua melibatkan mencipta pertanyaan SQL dengan parameter bernama, seperti sebagai ANTARA :dstart DAN :dfinish, dan menghantar nilai parameter sebagai kamus. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa tidak semua pemacu pangkalan data menyokong parameter bernama.
Sebagai contoh, psycopg2, yang biasa digunakan dengan PostgreSQL, menyokong gaya %(name)s parameter bernama. Berikut ialah contoh:
<code class="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>
Ingat untuk menyemak dokumentasi untuk pemacu pangkalan data pilihan anda untuk menentukan sintaks yang disokong untuk parameter bernama.
Atas ialah kandungan terperinci Bagaimanakah cara saya menghantar parameter kepada Pandas\' read_sql dengan pertanyaan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!