Lädt automatisch die SQL-Tabelle durch das Lesen der Daten aus text-Datei

Ich versuche zu schreiben, ein python-Skript wird das laden der Tabellen, die ich erstellt in Python ist es notwendig, mithilfe von SQL und füllen Sie Sie automatisch mit Daten, die aus einer text-Datei. Ich bin fest auf grundlegende Codierung. Ich habe eine Allgemeine Idee, aber ich erhalte Fehler, wenn ich versuchen zu laufen, dieser Ansatz. Erstellt habe ich 2 Tabellen. Ich habe die Datei Lesen. die Datei ist eine Komma getrennte text-Datei ohne Header.

ersten 3 Zeilen der Datei wie folgt aussieht.

+ ---- + ----- + -------------------- + -------- + - + --- + ----- +
| John | Smith | 111 N. Wabash Avenue | plumber  | 5 | 1.0 | 200   |
| John | Smith | 111 N. Wabash Avenue | bouncer  | 5 | 1.0 | 200   |
| Jane | Doe   | 243 S. Wabash Avenue | waitress | 1 | 5.0 | 10000 |
+ ---- + ----- + -------------------- + -------- + - + --- + ----- +

import sqlite3
conn= sqlite3.connect('csc455.db')
c = conn.cursor()

#Reading the data file
fd = open ('C:/Users/nasia/Documents/data_hw2.txt','r')
data = fd.readlines()

#Creating Tables
>>> L = """create table L
... (first text, last text, address text, job text, LNum integer,
... constraint L_pk
... primary key(first, last, address, job),
... constraint L_fk
... foreign key (LNum) references LN(LNum)
... );"""
>>> c.execute(L)

LN = """create table LN
... (
... LNum integer, Interest float, Amount, Integer,
... constraint LN_pk
 ... primary key (LNum)
... );"""
 c.execute(LN)

#Inserting into database
for elt in data:
...     currentRow = elt.split(", ")[:-1]
...     insert = """(insert into LN values (%s, %s, %s);, %(currentRow[4], currentRow[5], currentRow[6]))"""
...     c.execute(insert)

Gibt es einige syntax-Fehler hier. Der code aufhört zu funktionieren. Ich kann nicht herausfinden, was ich falsch mache.
Der Fehler ist
Traceback (most recent call last):
File "", line 4, in
OperationalError: near "(": syntax error

Ich kann nicht herausfinden, was mache ich falsch

  • Was bedeutet data_hw2.txt Aussehen? Was ist dein Datenbank-schema? Wie wollen Sie die Karte von einem zum anderen?
  • In der Zukunft, es hilft wirklich, zu wissen, welche Anweisung den Fehler ausgelöst, anstatt uns raten!
  • Als seitliche Anmerkung, die Sie nicht haben, um ; auf einzelne SQL-Anweisungen übergeben execute; das ist nur erforderlich, wenn Sie die command-line-tool, oder das ausführen eines SQL-Skripts.
InformationsquelleAutor nasia jaffri | 2013-10-06
Schreibe einen Kommentar