"Get"-Befehl in einer for-schleife

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mapo
User
Beiträge: 6
Registriert: Montag 1. November 2021, 14:14

Ich suche einen Befehl, welcher mir in der for-schleife den Datensatz Reihe für Reihe herausgibt. Ich habe da an etwas wie get() gedacht, dass funktioniert jedoch nicht. Gibt es da einen passenden Befehl und wenn ja, welcher? Vielen Dank im Voraus und LG.
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

Das kommt darauf an, über welche Datenstruktur du iterierst. Das verschweigst du aber.
Ansonsten ist die Antwort: mit for bist du auf dem richtigen Weg.
mapo
User
Beiträge: 6
Registriert: Montag 1. November 2021, 14:14

@sparrow Ich will aus einer csv-datei die Daten haben
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@mapo,

für csv-Dateien hat Python zum Beispiel das csv-Modul:

Dokumentation und Beispiel hier:
https://docs.python.org/3/library/csv.html#csv.reader
mapo
User
Beiträge: 6
Registriert: Montag 1. November 2021, 14:14

@rogerb diese ist mir bekannt. Um mein Problem nochmal zu verdeutlichen:
Ich habe 2 csv-datei. Dabei will ich durch eine for-schleife die erste Zeile für Zeile auslesen und überprüfen, ob die Information ebenfalls in der 2ten Datei steht.

Code: Alles auswählen

import csv

h = open('Datei1.csv', 'r', newline='', encoding='utf-8')
f = open('Datei2.csv', 'r', newline='', encoding='utf-8')

daten = csv.reader(h, delimiter=';')
Liste = csv.DictReader(f, delimiter=',')

daten = list(daten)

for i in range(len(daten)):
  if i['UserIds'] in Liste:
    print("Ja")
   
So war meine erste Idee, jedoch ohne Erfolg
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Dir ist doch schon im anderen Thema, das eigentlich das gleiche Problem diskutiert, ein Ansatz genannt worden: du musst eine Abbildung von Email auf die anderen Daten herstellen, mit einem Woerterbuch. Dann kannst du sowohl fragen, ob eine Email bereits bekannt ist, als auch dann die Daten zusammenfuehren.

Und um das klar zu machen: das hat nichts mit DictReader zu tun, der stellt nur die Daten einer Zeile anders dar. Skizziert:

Code: Alles auswählen

lookup_data = {}
for row in data: # kein len/range/Index-Gehampel.
    lookup_data[row["Email"]] = row

for other_row in other_data:
   email =other_row["Email"]
   if email in lookup_data:
           ... # was auch immer dann mit beiden Datensaetzen passieren soll
mapo
User
Beiträge: 6
Registriert: Montag 1. November 2021, 14:14

Vielen Dank @__deets__ Die Antworten in dem anderen Thema, waren absolut nutzlos um ehrlich zu sein. Ich habe aber den Ansatz jetzt verstanden, vielen Dank!
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das waren sie nicht. Nur weil du sie nicht verstanden hast, sind sie nicht nutzlos gewesen. Und hier hast du in einem neuen Thema auch lockere drei Posts gebraucht, bis wieder der Kontext da war, und klar, wo du hängst. Oder wie du es wohl ausdrücken würdest: zwei vollkommen nutzlose Posts. Da wäre ich ein bisschen vorsichtig damit anderen Nutzlosigkeit vorzuwerfen.
Antworten