ich bin wie sich sicher gleich unschwer erkennenlässt, ein "Neuling" in Sachen Programmieren und Python.
Leider komme ich trotz Suchfunktion und GidF.de einfach nicht weiter.
Um Python zu lernen habe ich mir ein sehr konkretes Projekt überlegt, welches mit der Zeit immer komplexer werden kann (jenachdem wie meine Skills wachsen).
Leider scheitere ich schon bei den Grundlagen.
Ich habe 2 CSV Datein, Datei 1 = Types.csv (in dieser ist eine Reihe von Gegenständen inklusive Beschreibungen Attributen und vor allem mit einer TypeID und GruppenID) , in der anderen CSV, Datei 2 =Groups.csv stehen die GruppenIDs die für mein Projekt relevant sind.
Ich möchte nun die Daten aus Types in eine SQLite3 DB überführen, aber eben nur dann wenn der Gegenstand in einer der Gruppen ist die für mich relevant sind.
Das Filtern nach einem fixen Wert wie z.B. == "18" ist kein Problem, allerdings bekomme ich das mit Groups nicht hin.
Hinweis: in Types ist O=TypeID 1=GroupID 2=Name 5=Wert
Vorab schonmal vielen Dank für eure Unterstützung. Aber Bitte bitte, keine komplette Lösung! Gebt mir nen Schubs von mir aus auch Tritt! Aber ich will lernen warum es nicht geht.
Code: Alles auswählen
import sqlite3
import csv
# ERSTELLEN DATENBANK und TABELLEN
connection = sqlite3.connect("DLH.DB")
cursor = connection.cursor()
cursor.execute(
"CREATE TABLE IF NOT EXISTS types (typeID INTEGER, groupID INTEGER, typeName TEXT, volume REAL)")
connection.commit()
# FILTERN CSV DATEI nach GRUPPEN
#erstellen der Liste "Gruppen" aus der CSV Groups
with open("groups.csv", encoding="UTF8") as csvfile:
csv_reader_object = csv.reader(csvfile)
groups = list(csv_reader_object)
groups.pop(0) # Kopfzeile Entfernen
#Abgleich der Types.csv mit der Liste "Gruppen"
with open("types.csv", encoding="UTF8") as csvfile2:
csv_reader_object2 = csv.reader(csvfile2)
for line in csv_reader_object2:
if (line[1]) in str(groups):
# if (line[1]) == "18": Das würde funktionieren
connection = sqlite3.connect("DLH.DB")
cursor = connection.cursor()
cursor.execute(
"INSERT INTO types VALUES(?,?,?,?)", (line[0],line[1],line[2],line[5]))
connection.commit()
connection.close()