"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo pasar parámetros con Pandas read_sql?

¿Cómo pasar parámetros con Pandas read_sql?

Publicado el 2024-11-08
Navegar:904

How to Pass Parameters with Pandas read_sql?

Pasar parámetros con Pandas read_sql

Descripción general

La función Pandas read_sql le permite ejecutar consultas SQL y recuperar datos de una base de datos. Una de sus características es la capacidad de pasar parámetros a la consulta.

Sintaxis de parámetros

Los parámetros se pueden pasar como una lista, tupla o dict. La sintaxis exacta depende del controlador de base de datos que se utilice. A continuación se muestran algunos ejemplos comunes:

  • ? o %s: marcador de posición para un valor único
  • :1 o :name: marcador de posición con nombre para un valor único
  • %(name)s: marcador de posición con nombre usando la sintaxis string.format

Usar un diccionario con argumentos con nombre

Una opción para pasar parámetros es usar un diccionario. Esto es compatible con la mayoría de los controladores, incluido PostgreSQL con el controlador psycopg2. Los pares clave-valor en el diccionario corresponden a los marcadores de posición con nombre en la consulta.

Ejemplo

Para demostrar el enfoque del argumento con nombre, consideremos la siguiente consulta SQL:

select "Timestamp", "Value" from "MyTable"
where "Timestamp" BETWEEN :dstart AND :dfinish

Así es como pasaría parámetros a esta consulta usando un diccionario:

params = {"dstart": datetime(2014, 6, 24, 16, 0), "dfinish": datetime(2014, 6, 24, 17, 0)}

df = psql.read_sql(
    "select \"Timestamp\",\"Value\" from \"MyTable\" where \"Timestamp\" BETWEEN %(dstart)s AND %(dfinish)s",
    db,
    params=params,
    index_col=["Timestamp"],
)

En este ejemplo, el diccionario de parámetros proporciona valores para los marcadores de posición nombrados :dstart y :dfinish. La sintaxis de %(name)s garantiza que los valores se inserten correctamente en la consulta.

Último tutorial Más>

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