Seite 1 von 1

Json datei Doppelte Einträge verhindern ?

Verfasst: Samstag 15. August 2020, 14:57
von Backware
Hallo arbeite gerade an ein Python Project.

Würde gerne einfache Doppelte Einträge verhindere
habe es schon hiermit probiert

Code: Alles auswählen

    
    with open('welcome.json', 'r+') as f:
        i = json.load(f)
    
    if Wohnort in i:
        print('Wurde gefunden:')
    else:
        print('Wurde nicht gefunden?')
        i[Wohnort] = Frankfurt
        with open('welcome.json', 'w') as f:
            json.dump(i, f, indent=4)
        

Re: Json datei Doppelte Einträge verhindern ?

Verfasst: Samstag 15. August 2020, 17:45
von sparrow
Das kommt auf die Datenstrukur an, die sich in der json-Datei verbirgt.

Variablennamen schreibt man in in Python klein_mit_unterstrich. "i" ist ein schlechter Name für eine Variable, an die ein json-Objekt gebunden wird.

Dein Code funktioniert nicht. Sowohl "Frankfurt" als auch "Wohnort" sind nicht definiert.

Re: Json datei Doppelte Einträge verhindern ?

Verfasst: Samstag 15. August 2020, 18:38
von Sirius3
Ein Wörterbuch erlaubt keine doppelten Einträge. Dein Problem ist also schon gelöst.
`r+` ist nie ein sinnvoller Dateimodus. Bei Text-Dateien immer ein Encoding angeben, bei JSON ist das immer UTF8. Variablennamen schreibt man komplett klein und einbuchstabige Variablennamen sind schlecht, weil sie nichts aussagen. Auch welcome.json sagt jetzt nicht wirklich, dass da ein Wörterbuch mit Wohnorten drin steht.

Re: Json datei Doppelte Einträge verhindern ?

Verfasst: Samstag 15. August 2020, 19:57
von __blackjack__
JSON-Dateien öffne ich mittlerweile zum Lesen immer im Binärmodus, denn das `json`-Modul ermittelt dann selbst in welcher UTF-*-Variante die Daten vorliegen. Bin da neulich mal über eine UTF-16-kodierte Datei gestolpert. Schreiben dann immer explizit als UTF-8.