Heim >Backend-Entwicklung >Python-Tutorial >Wie importiere ich eine CSV-Datei mit Python in eine SQLite3-Datenbanktabelle?

Wie importiere ich eine CSV-Datei mit Python in eine SQLite3-Datenbanktabelle?

Barbara Streisand
Barbara StreisandOriginal
2024-11-28 04:34:09918Durchsuche

How to Import a CSV File into an SQLite3 Database Table with Python?

Konvertieren einer CSV-Datei in eine SQLite3-Datenbanktabelle mit Python

Das direkte Importieren einer CSV-Datei in eine SQLite3-Datenbanktabelle ist mit dem Befehl „.import“ nicht möglich. Dies kann jedoch mit den folgenden Schritten erreicht werden:

Herstellen einer Datenbankverbindung

Verwenden Sie das sqlite3-Modul, um eine Verbindung zu einer Datenbank herzustellen (entweder eine In-Memory-Datenbank oder eine dateibasierte). Datenbank):

import sqlite3

con = sqlite3.connect(":memory:")
cur = con.cursor()

Erstellen Sie die Zieltabelle

Erstellen Sie die Tabelle, die die importierten Daten enthält, mithilfe von „CREATE TABLE“-Anweisung, die die Spaltennamen und Datentypen angibt:

cur.execute("CREATE TABLE t (col1, col2);")

CSV-Datei lesen

Öffnen Sie die CSV-Datei und lesen Sie ihren Inhalt mit einem CSV-Reader. Wenn die Spaltennamen in der ersten Zeile der Datei angegeben sind, können Sie sie mit csv.DictReader einem Wörterbuch zuordnen:

with open('data.csv', 'r') as fin:
    dr = csv.DictReader(fin)

CSV-Daten in Listen konvertieren

Das Wörterbuch konvertieren Zeilen aus dem CSV-Reader in eine Liste von Tupeln:

to_db = [(i['col1'], i['col2']) for i in dr]

Daten in einfügen Tabelle

Verwenden Sie die Methode „executemany()“ für das Cursorobjekt, um die Liste der Tupel in die Zieltabelle einzufügen:

cur.executemany("INSERT INTO t (col1, col2) VALUES (?, ?);", to_db)

Änderungen festschreiben

Änderungen festschreiben Datenbank, um sie dauerhaft zu machen:

con.commit()

Schließen Sie die Verbindung

Schließen Sie abschließend die Datenbank Verbindung:

con.close()

Das obige ist der detaillierte Inhalt vonWie importiere ich eine CSV-Datei mit Python in eine SQLite3-Datenbanktabelle?. 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