Wieso bekomme ich diesen Fehler und wie behebe ich ihn?

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
anonym96

Hallo ich bin noch nicht so erfahren beim Dateien auslesen und in Dateien schreiben
Ich bin gerade dabei das die Punkte jeder Runde am Ende auf die Punkte in der Json drauf gerechnet bzw abgezogen werden.
Am Anfang sollen diese Punkte auf null stehen in der JSON

Code: Alles auswählen

with open ("score.json","w","r")as f:
                data = json.load(f.read())
                data.score += self.punktzahl
                json.dump(data,f,indent=4,separators=(",",":"),sort_keys=True)
Bekomme nur diesen Fehler an integer is required (got type str).
Also er will eine int bekommt aber ein string.
Jetzt weiß nur nicht warum denn self.punktzahl ist eine int
Kann mir jemand bitte helfen?
Danke
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Wenn schon eine Fehlermeldung kommt, dann post den gesamten Traceback. So weiß doch kein Mensch, wo der Fehler auftritt.
Du kannst keine Textdatei gleichzeitig zum Lesen und Schreiben öffnen, das mußt Du nacheinander machen.
`json.load` erwartet ein Fileobjekt. `data` ist sicher kein Objekt, das ein score-Attribut hat.
anonym96

Sirius3 hat geschrieben: Montag 19. Oktober 2020, 17:06 Wenn schon eine Fehlermeldung kommt, dann post den gesamten Traceback. So weiß doch kein Mensch, wo der Fehler auftritt.
Du kannst keine Textdatei gleichzeitig zum Lesen und Schreiben öffnen, das mußt Du nacheinander machen.
`json.load` erwartet ein Fileobjekt. `data` ist sicher kein Objekt, das ein score-Attribut hat.

Code: Alles auswählen

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:\Users\glint\source\repos\Multiquiz\Screens\Geschichtescreendatei.py", line 112, in gibUnsEineFrage
    with open ("score.json","w","r")as f:
TypeError: an integer is required (got type str)
Das Fileobjekt is score.json das ist die Datei
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Bei diesem Post, weiß ich jetzt nicht, ob Du meine Antwort gelesen und verstanden hast, oder nicht: `open` braucht einen Filemode und nicht zwei.
anonym96

Sirius3 hat geschrieben: Montag 19. Oktober 2020, 17:24 Bei diesem Post, weiß ich jetzt nicht, ob Du meine Antwort gelesen und verstanden hast, oder nicht: `open` braucht einen Filemode und nicht zwei.
Habe ich schon verstanden.
Davor bekam ich aber ein unreadable Fehler.
Was daran lag das es writeonly war. Da dachte ich es brauch auch noch r
Antworten