pandas read_sql
mit parametrisierten SQL -Abfragen
Die pandas.read_sql
Funktion ist ein leistungsstarkes Tool zum Abholen von Daten aus Datenbanken. Bei der Arbeit mit SQLalchemy -Motoren ist es entscheidend, die Parameter effektiv an Ihre SQL -Abfragen weiterzugeben. Dieser Leitfaden zeigt zwei gemeinsame Ansätze: Positions- und Namensparameter.
Methode 1: Positionalparameter
Diese Methode verwendet eine Liste oder ein Tupel, um Ihre SQL -Abfrage Parameter zu liefern. Die Platzhalter in der SQL -Anweisung (%s
) werden nacheinander durch die Elemente in der Parameterliste ersetzt.
Beispiel:
import pandas as pd
from datetime import datetime
# ... (database connection setup using SQLAlchemy) ...
query = ('SELECT "Timestamp", "Value" FROM "MyTable" '
'WHERE "Timestamp" BETWEEN %s AND %s')
params = [datetime(2014, 6, 24, 16, 0), datetime(2014, 6, 24, 17, 0)]
df = pd.read_sql(query, db, params=params, index_col=['Timestamp'])
Methode 2: Namens Parameter
benannte Parameter bieten eine bessere Lesbarkeit und Wartbarkeit. Die unterstützte Syntax hängt jedoch von Ihrem Datenbanktreiber ab. Mit Sqlalchemy und Psycopg2 ist die %(name) s
syntax notwendig.
Beispiel:
import pandas as pd
from datetime import datetime
# ... (database connection setup using SQLAlchemy) ...
query = ('SELECT "Timestamp", "Value" FROM "MyTable" '
'WHERE "Timestamp" BETWEEN %(dstart)s AND %(dfinish)s')
params = {"dstart": datetime(2014, 6, 24, 16, 0), "dfinish": datetime(2014, 6, 24, 17, 0)}
df = pd.read_sql(query, db, params=params, index_col=['Timestamp'])
Wichtiger Hinweis: Überprüfen Sie immer die Dokumentation Ihres Datenbank -Fahrers, um die richtige Parametersyntax zu bestätigen. Die Verwendung der falschen Syntax führt zu Abfragefehlern. Dies stellt sicher, dass Ihre parametrisierten Abfragen korrekt und sicher ausgeführt werden.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3