首頁 >資料庫 >mysql教程 >如何使用 SQL 查詢將參數傳遞給 pandas read_sql?

如何使用 SQL 查詢將參數傳遞給 pandas read_sql?

Barbara Streisand
Barbara Streisand原創
2025-01-18 07:23:10852瀏覽

How to Pass Parameters to pandas read_sql with SQL Queries?

Pandas 參數化 SQL 查詢的 read_sql

pandas.read_sql函數是從資料庫取得資料的強大工具。 使用 SQLAlchemy 引擎時,有效地將參數傳遞給 SQL 查詢至關重要。 本指南示範了兩種常見的方法:位置參數和命名參數。

方法一:位置參數

此方法使用清單或元組為 SQL 查詢提供參數。 SQL 語句中的佔位符 (%s) 將依序替換為參數清單中的元素。

範例:

<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>

方法2:命名參數

命名參數提供更好的可讀性和可維護性。 但是,支援的語法取決於您的資料庫驅動程式。 對於 SQLAlchemy 和 psycopg2,%(name)s 語法是必需的。

範例:

<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>

重要提示: 請務必檢查資料庫驅動程式的文件以確認正確的參數語法。 使用錯誤的語法將導致查詢錯誤。 這可確保您的參數化查詢正確且安全地執行。

以上是如何使用 SQL 查詢將參數傳遞給 pandas read_sql?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn