CSV-Dateien miteinander vergleichen und ergänzen
Verfasst: Dienstag 2. November 2021, 11:27
Moin Zusammen,
ich habe folgendes Problem: Ich habe zwei CSV-Dateien mit verschiedenen Daten, die jedoch als Gemeinsamkeit Emailadressen beinhalten. Nun soll das Programm herausfinden, ob eine E-Mail in der 1ten Datei und in der 2ten Datei vorhanden ist. Ist dies der Fall sollen die Daten von der 2ten Datei der 1 Datei hinzugefügt werden. Mein erster Entwurf sieht so aus:
Leider ist das Problem, dass die Abgleichung nur funktioniert, wenn in beiden Dateien nur eine Email steht. Es soll aber natürlich auch gehen wenns mehrere sind. Theoretisch müsste das Programm die 1te Zeile aus Datei1 mit jeder Zeile einzeln aus Datei2 vergleichen. Dann die 2te Zeile aus Datei mit jeder Zeile aus Datei2. Falls es einen Treffer geben sollte, dann hört der Schritt natürlich auf und die Informationen sollen in einer neuen Datei zusammengefügt werden. Ich hoffe Ihr versteht mein grobes Problem und habt eine Idee, inwiefern man die Daten miteinander korrekt abgleichen könnte.
Lg und vielen Dank im Voraus!
ich habe folgendes Problem: Ich habe zwei CSV-Dateien mit verschiedenen Daten, die jedoch als Gemeinsamkeit Emailadressen beinhalten. Nun soll das Programm herausfinden, ob eine E-Mail in der 1ten Datei und in der 2ten Datei vorhanden ist. Ist dies der Fall sollen die Daten von der 2ten Datei der 1 Datei hinzugefügt werden. Mein erster Entwurf sieht so aus:
Code: Alles auswählen
import csv
import json
kontakte = {}
f = open('MAListeV.csv', 'r', newline='')
daten_csv = csv.DictReader(f, delimiter=',')
with open('TestdatenO.csv', 'r', newline='') as csv_datei:
dialect = csv.Sniffer().sniff(csv_datei.readline())
csv_datei.seek(0)
reader = csv.reader(csv_datei, dialect)
kopfzeile = next(reader)
for zeile in reader:
eintrag = {
kopfzeile[1]: zeile[1],
}
name = f' {zeile[1]}'
kontakte[name] = eintrag
print(json.dumps(kontakte, indent=4))
for row in daten_csv:
print(row['Email'])
if zeile[1] in row['Email']:
print("Funktioniert")
Lg und vielen Dank im Voraus!