ホームページ  >  記事  >  バックエンド開発  >  Pandas read_sql でパラメータを渡す方法は?

Pandas read_sql でパラメータを渡す方法は?

DDD
DDDオリジナル
2024-11-01 22:42:02112ブラウズ

How to Pass Parameters with Pandas read_sql?

Pandas read_sql でパラメータを渡す

概要

Pandas の read_sql 関数を使用すると、SQL クエリを実行し、データベースからデータを取得できます。その機能の 1 つは、クエリにパラメータを渡す機能です。

パラメータ構文

パラメータはリスト、タプル、または辞書として渡すことができます。正確な構文は、使用されているデータベース ドライバーによって異なります。一般的な例をいくつか示します:

  • ?または %s: 単一値のプレースホルダー
  • :1 または :name: 単一値の名前付きプレースホルダー
  • %(name)s: string.format 構文を使用した名前付きプレースホルダー

名前付き引数での辞書の使用

パラメータを渡すオプションの 1 つは、辞書を使用することです。これは、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。