Heim >Datenbank >MySQL-Tutorial >Wie kann ich SQL-Abfragen aus einer externen Datei in Python effizient ausführen?

Wie kann ich SQL-Abfragen aus einer externen Datei in Python effizient ausführen?

Susan Sarandon
Susan SarandonOriginal
2024-12-29 22:35:10470Durchsuche

How Can I Efficiently Execute SQL Queries from an External File in Python?

Abfragen einer externen SQL-Datei in Python

Verwirrung:

Beim Ausführen von SQL-Abfragen aus einer externen Datei kann es bei einigen Entwicklern vorkommen Lassen Sie sich durch Zeilen verwirren wie:

result = c.execute("SELECT * FROM %s;" % table);

Erklärung:

Die Zeichenfolgenformatierung in Python ermöglicht es uns, Platzhalter (%s) dynamisch durch Werte zu ersetzen. In diesem Fall wird %s durch den Wert der Tabellenvariablen ersetzt, bei dem es sich um eine Zeichenfolge handelt, die den Tabellennamen darstellt. Wenn die Tabelle also „Tier“ ist, lautet die Abfrage „SELECT * FROM Animal;“.

Verwendung des bereitgestellten Codes:

Der bereitgestellte Python-Code enthält eine Funktion executeScriptsFromFile, mit dem alle SQL-Befehle in einer externen Datei ausgeführt werden können.

def executeScriptsFromFile(filename):
    with open(filename, 'r') as fd:
        sqlFile = fd.read()
    sqlCommands = sqlFile.split(';')

    for command in sqlCommands:
        try:
            c.execute(command)
        except OperationalError as msg:
            print("Command skipped: ", msg)

Mit dieser Funktion können Sie die SQL-Abfragen ausführen in Ihrer zookeeper.sql-Datei:

executeScriptsFromFile('zookeeper.sql')

Abfragen 1.1 und 1.2:

Die Abfragen 1.1 und 1.2 sind bereits in der zookeeper.sql-Datei enthalten. Der obige Code führt sie aus, wenn die Datei geladen wird.

Vollständiger Code:

Durch die Kombination der Funktion „executeScriptsFromFile“ und des Tabellenschleifencodes kann Ihr vollständiger Python-Code vereinfacht werden wie folgt:

import sqlite3
from sqlite3 import OperationalError

conn = sqlite3.connect('csc455_HW3.db')
c = conn.cursor()

executeScriptsFromFile('zookeeper.sql')

for table in ['ZooKeeper', 'Animal', 'Handles']:
    result = c.execute("SELECT * FROM %s;" % table)
    rows = result.fetchall()
    print("\n--- TABLE ", table, "\n")
    for desc in result.description:
        print(desc[0].rjust(22, ' '), end=',')
    print()  # End the line with column names

    for row in rows:
        for value in row:
            print(str(value).rjust(22, ' '))
        print()

c.close()
conn.close()

Das obige ist der detaillierte Inhalt vonWie kann ich SQL-Abfragen aus einer externen Datei in Python effizient ausführen?. 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