Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Lulus Parameter ke panda read_sql dengan Pertanyaan SQL?

Bagaimana untuk Lulus Parameter ke panda read_sql dengan Pertanyaan SQL?

Barbara Streisand
Barbara Streisandasal
2025-01-18 07:23:10854semak imbas

How to Pass Parameters to pandas read_sql with SQL Queries?

Panda read_sql dengan pertanyaan SQL berparameter

Fungsi pandas.read_sql ialah alat yang berkuasa untuk mengambil data daripada pangkalan data. Apabila bekerja dengan enjin SQLAlchemy, menghantar parameter dengan berkesan kepada pertanyaan SQL anda adalah penting. Panduan ini menunjukkan dua pendekatan biasa: parameter kedudukan dan dinamakan.

Kaedah 1: Parameter Kedudukan

Kaedah ini menggunakan senarai atau tupel untuk membekalkan parameter kepada pertanyaan SQL anda. Pemegang tempat dalam pernyataan SQL (%s) digantikan secara berurutan oleh elemen dalam senarai parameter.

Contoh:

<code class="language-python">import pandas as pd
from datetime import datetime

# ... (database connection setup using SQLAlchemy) ...

query = ('SELECT "Timestamp", "Value" FROM "MyTable" '
         'WHERE "Timestamp" BETWEEN %s AND %s')
params = [datetime(2014, 6, 24, 16, 0), datetime(2014, 6, 24, 17, 0)]

df = pd.read_sql(query, db, params=params, index_col=['Timestamp'])</code>

Kaedah 2: Parameter Dinamakan

Parameter yang dinamakan menawarkan kebolehbacaan dan kebolehselenggaraan yang lebih baik. Walau bagaimanapun, sintaks yang disokong bergantung pada pemacu pangkalan data anda. Dengan SQLAlchemy dan psycopg2, sintaks %(name)s diperlukan.

Contoh:

<code class="language-python">import pandas as pd
from datetime import datetime

# ... (database connection setup using SQLAlchemy) ...

query = ('SELECT "Timestamp", "Value" FROM "MyTable" '
         'WHERE "Timestamp" BETWEEN %(dstart)s AND %(dfinish)s')
params = {"dstart": datetime(2014, 6, 24, 16, 0), "dfinish": datetime(2014, 6, 24, 17, 0)}

df = pd.read_sql(query, db, params=params, index_col=['Timestamp'])</code>

Nota Penting: Sentiasa semak dokumentasi pemacu pangkalan data anda untuk mengesahkan sintaks parameter yang betul. Menggunakan sintaks yang salah akan membawa kepada ralat pertanyaan. Ini memastikan pertanyaan berparameter anda dilaksanakan dengan betul dan selamat.

Atas ialah kandungan terperinci Bagaimana untuk Lulus Parameter ke panda read_sql dengan Pertanyaan SQL?. 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