Heim >Backend-Entwicklung >Python-Tutorial >Wie übergebe ich Parameter mit Pandas read_sql?

Wie übergebe ich Parameter mit Pandas read_sql?

DDD
DDDOriginal
2024-11-01 22:42:02211Durchsuche

How to Pass Parameters with Pandas read_sql?

Übergabe von Parametern mit Pandas read_sql

Übersicht

Mit der Funktion Pandas read_sql können Sie SQL-Abfragen ausführen und Daten aus einer Datenbank abrufen. Eine seiner Funktionen ist die Möglichkeit, Parameter an die Abfrage zu übergeben.

Parametersyntax

Parameter können als Liste, Tupel oder Diktat übergeben werden. Die genaue Syntax hängt vom verwendeten Datenbanktreiber ab. Hier sind einige gängige Beispiele:

  • ? oder %s: Platzhalter für einen einzelnen Wert
  • :1 oder :name: Benannter Platzhalter für einen einzelnen Wert
  • %(name)s: Benannter Platzhalter mit der string.format-Syntax

Verwendung eines Wörterbuchs mit benannten Argumenten

Eine Möglichkeit zur Übergabe von Parametern ist die Verwendung eines Wörterbuchs. Dies wird von den meisten Treibern unterstützt, einschließlich PostgreSQL mit dem psycopg2-Treiber. Die Schlüssel-Wert-Paare im Wörterbuch entsprechen den benannten Platzhaltern in der Abfrage.

Beispiel

Um den Ansatz mit benannten Argumenten zu demonstrieren, betrachten wir die folgende SQL-Abfrage:

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

So würden Sie mithilfe eines Wörterbuchs Parameter an diese Abfrage übergeben:

<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>

In diesem Beispiel stellt das Params-Wörterbuch Werte für die benannten Platzhalter :dstart und :dfinish bereit. Die %(name)s-Syntax stellt sicher, dass die Werte korrekt in die Abfrage eingefügt werden.

Das obige ist der detaillierte Inhalt vonWie übergebe ich Parameter mit Pandas read_sql?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn