Kann mir bitte jemand sagen was in meinem Code falsch ist?

Code-Stücke können hier veröffentlicht werden.
Antworten
LiiNKSYS
User
Beiträge: 11
Registriert: Freitag 30. Dezember 2022, 17:38

Code: Alles auswählen

import json

eingabefeld = "000000000"

with open("Inventar.json", 'r') as f:
    teile = json.load(f)
    
for i in range(len(teile)):
    if teile[i] == eingabefeld:
        index = i
        print(teile[index])

JSON Datei:

Code: Alles auswählen

[
  {
    "Teilenummer": "000000000",
    "Lagerort": "M000",
    "Beschreibung": "Schraubendreher",
    "Bestand": 3
  },
  {
    "Teilenummer": "000000001",
    "Lagerort": "M001",
    "Beschreibung": "Torx",
    "Bestand": 3
  }
]
Ich bekomme als ausgäbe einfach nichts.
Wenn sich die Liste in meinem Code befindet funktioniert das alles.
Ich weiß da wirklich nicht mehr weiter und hoffe, dass jemand von euch mir da schnell helfen kann.
Eigentlich soll die For-Schliefe einfach nur schauen, ob das gesuchte in der Liste vorhanden ist.
Sobald ich das ganze über JSON verwirklichen will, läuft es nicht mehr.

Danke schonmal!
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Über einen Index iteriert man nicht, sondern über die Elemente der Liste direkt.
Hast Du Dir mal angeschaut, was Du da miteinander vergleichst? Steht eigentlich schon im Code wörtlich drin: vergleiche das i-te Teil mit dem Eingabefeld (was eigentlich eine Teilenummer ist), und ein Teil kann rein logisch keine Teilenummer sein.

Das selbe habe ich glaube ich auch schon in Deinem anderen Thread geschrieben, aber hier nochmal der korrigierte Code:

Code: Alles auswählen

import json

teilenummer = "000000000"

with open("Inventar.json", encoding="UTF8") as f:
    teile = json.load(f)
    
for teil in teile:
    if teil['Teilenummer'] == teilenummer:
        print(teil)
LiiNKSYS
User
Beiträge: 11
Registriert: Freitag 30. Dezember 2022, 17:38

Ich danke dir vielmals!
Antworten