SQL クエリを使用して Pandas の read_sql にパラメータを渡す
問題:
を使用する場合Pandas の read_sql() メソッドと SQL クエリでは、ユーザーがクエリにパラメータを渡すときに問題が発生する可能性があります。ドキュメントではパラメータをリストまたはタプルとして使用することが記載されていますが、辞書形式を使用しようとすると問題が発生するユーザーもいます。
解決策:
read_sql によると() ドキュメントでは、パラメーターを実際に辞書として渡すことができます。ただし、接続で使用されるデータベース ドライバーによってサポートされる構文は重要な役割を果たします。
PostgreSQL への接続時に一般的に使用されるデータベース ドライバーである Psycopg2 では、名前付き引数の構文がサポートされます。この場合、以下に示すように、パラメーター名を 2 つの % 記号で囲み、辞書として指定する必要があります。
<code class="python">df = psql.read_sql(('select "Timestamp","Value" from "MyTable" ' 'where "Timestamp" BETWEEN %(dstart)s AND %(dfinish)s'), db, params={"dstart": datetime(2014, 6, 24, 16, 0), "dfinish": datetime(2014, 6, 24, 17, 0)}, index_col=['Timestamp'])</code>
この例では、%()s 構文を使用してパラメーターのプレースホルダーを定義します。 SQLクエリ内で。次に、対応する値が辞書として read_sql() の params 引数に渡されます。
使用中のデータベース ドライバーの正しい構文を利用することで、ユーザーは Pandas の read_sql() を使用するときにパラメーターを SQL クエリに正常に渡すことができます。 ) メソッド。
以上がPandas の read_sql() で SQL クエリにパラメータを渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。