pandas read_sql
con consultas sql parametrizadas
la función pandas.read_sql
es una herramienta poderosa para obtener datos de las bases de datos. Cuando se trabaja con los motores SQLalchemy, es crucial pasar de manera efectiva los parámetros a sus consultas SQL. Esta guía demuestra dos enfoques comunes: parámetros posicionales y nombrados.
método 1: parámetros posicionales
Este método utiliza una lista o tupla para suministrar parámetros a su consulta SQL. Los marcadores de posición en la instrucción SQL (%s
) son reemplazados secuencialmente por los elementos en la lista de parámetros.
Ejemplo:
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'])
Método 2: parámetros con nombre
Los parámetros con nombre ofrecen una mejor legibilidad y mantenimiento. Sin embargo, la sintaxis compatible depende de su controlador de base de datos. Con sqlalchemy y psyCopg2, la sintaxis %(name) s
es necesaria.
Ejemplo:
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'])
Nota importante: Siempre verifique la documentación del controlador de su base de datos para confirmar la sintaxis del parámetro correcto. El uso de la sintaxis incorrecta conducirá a errores de consulta. Esto garantiza que sus consultas parametrizadas se ejecuten de manera correcta y segura.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3