>백엔드 개발 >파이썬 튜토리얼 >Pandas read_sql로 매개변수를 전달하는 방법은 무엇입니까?

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

DDD
DDD원래의
2024-11-01 22:42:02213검색

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 쿼리를 고려해 보겠습니다.

<code class="sql">select "Timestamp", "Value" from "MyTable"
where "Timestamp" BETWEEN :dstart AND :dfinish</code>

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

<code class="python">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"],
)</code>

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

위 내용은 Pandas read_sql로 매개변수를 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.