"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 para pandas read_sql com consultas SQL?

Como passar parâmetros para pandas read_sql com consultas SQL?

Postado em 2025-03-04
Navegar:396

How to Pass Parameters to pandas read_sql with SQL Queries?

pandas read_sql com consultas SQL parametrizadas

A função pandas.read_sql é uma ferramenta poderosa para buscar dados de bancos de dados. Ao trabalhar com os mecanismos SQLalChemy, é crucial passar efetivamente os parâmetros para suas consultas SQL. Este guia demonstra duas abordagens comuns: parâmetros posicionais e nomeados.

Método 1: parâmetros posicionais

Este método usa uma lista ou tupla para fornecer parâmetros à sua consulta SQL. Os espaços reservados na instrução SQL (%s ) são substituídos sequencialmente pelos elementos na lista de parâmetros.

Exemplo:

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 nomeados

Os parâmetros nomeados oferecem melhor legibilidade e manutenção. No entanto, a sintaxe suportada depende do seu driver de banco de dados. Com sqlalchemy e psycopg2, a sintaxe %(nome) é necessária.

Exemplo:

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: sempre verifique a documentação do driver do banco de dados para confirmar a sintaxe do parâmetro correto. O uso da sintaxe errada levará a erros de consulta. Isso garante que suas consultas parametrizadas sejam executadas corretamente e com segurança.

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