"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como passar parâmetros com Pandas read_sql?

Como passar parâmetros com Pandas read_sql?

Publicado em 2024-11-08
Navegar:227

How to Pass Parameters with Pandas read_sql?

Passando parâmetros com Pandas read_sql

Visão geral

A função Pandas read_sql permite executar consultas SQL e recuperar dados de um banco de dados. Um de seus recursos é a capacidade de passar parâmetros para a consulta.

Sintaxe dos parâmetros

Os parâmetros podem ser passados ​​como uma lista, tupla ou ditado. A sintaxe exata depende do driver de banco de dados usado. Aqui estão alguns exemplos comuns:

  • ? ou %s: Espaço reservado para um único valor
  • :1 ou :name: Espaço reservado nomeado para um único valor
  • %(name)s: Espaço reservado nomeado usando a sintaxe string.format

Usando um dicionário com argumentos nomeados

Uma opção para passar parâmetros é usar um dicionário. Isto é suportado pela maioria dos drivers, incluindo PostgreSQL com o driver psycopg2. Os pares de valores-chave no dicionário correspondem aos espaços reservados nomeados na consulta.

Exemplo

Para demonstrar a abordagem do argumento nomeado, vamos considerar a seguinte consulta SQL:

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

Veja como você passaria parâmetros para esta consulta usando um dicionário:

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"],
)

Neste exemplo, o dicionário de parâmetros fornece valores para os espaços reservados nomeados :dstart e :dfinish. A sintaxe %(name)s garante que os valores sejam inseridos corretamente na consulta.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3