"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Pandas read_sql로 매개변수를 전달하는 방법은 무엇입니까?

Pandas read_sql로 매개변수를 전달하는 방법은 무엇입니까?

2024-11-08에 게시됨
검색:451

How to Pass Parameters with Pandas read_sql?

Pandas read_sql로 매개변수 전달

개요

Pandas read_sql 함수를 사용하면 SQL 쿼리를 실행하고 데이터베이스에서 데이터를 검색할 수 있습니다. 그 기능 중 하나는 매개변수를 쿼리에 전달하는 기능입니다.

매개변수 구문

파라미터는 목록, 튜플 또는 사전으로 전달될 수 있습니다. 정확한 구문은 사용 중인 데이터베이스 드라이버에 따라 다릅니다. 다음은 몇 가지 일반적인 예입니다.

  • ? 또는 %s: 단일 값에 대한 자리 표시자
  • :1 또는 :name: 단일 값에 대해 명명된 자리 표시자
  • %(name)s: string.format 구문을 사용하여 명명된 자리 표시자

명명된 인수와 함께 사전 사용

매개변수 전달을 위한 한 가지 옵션은 사전을 사용하는 것입니다. 이는 psycopg2 드라이버가 있는 PostgreSQL을 포함하여 대부분의 드라이버에서 지원됩니다. 사전의 키-값 쌍은 쿼리의 명명된 자리 표시자에 해당합니다.

명명된 인수 접근 방식을 보여주기 위해 다음 SQL 쿼리를 고려해 보겠습니다.

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

사전을 사용하여 이 쿼리에 매개변수를 전달하는 방법은 다음과 같습니다.

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

이 예에서 params 사전은 명명된 자리 표시자 :dstart 및 :dfinish에 대한 값을 제공합니다. %(name)s 구문은 값이 쿼리에 올바르게 삽입되도록 보장합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3