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中文網其他相關文章!