Seite 1 von 1

list indices must be integers, not str

Verfasst: Donnerstag 27. August 2015, 12:37
von Pingponguin
Hallo,

nach dem ich es nun schaffe Scripte auszuführen, habe ich bei der Ausführung die Fehlermeldung:

Errors occurred: list indices must be integers, not str

Bild

erhalten.

Das Ergebnis des Scripts ist eine JSON-Datei, die am Anfang auch den Fehler enthält:

Code: Alles auswählen

{
    "common": {
        "datablock_1": 1, 
        "message": "list indices must be integers, not str", 
        "parser": "WoT-Replay-To-JSON 0.9.3.0 by http://www.vbaddict.net", 
        "replay_version": "0.9.9.0", 
        "status": "error"
    }, 
Nach meine Recherchen gibt es die Fehlermeldung in verschiedenen Zusammenhängen. Was ich versucht habe, ist "Untabify" auf das Script anzuwenden, habe aber keine Ahnung, ob das wirklich daran liegt oder nicht. Hat aber auch nichts genützt.

Weiß jemand, ob das nun ein Python oder ein JSON Fehler ist und wie ich bei der Fehlersuche am Besten verfahre? Ich versuche das nun schon seit Gestern und bekomme es nicht hin.

Danke und Gruß,

Pingpong

Re: list indices must be integers, not str

Verfasst: Donnerstag 27. August 2015, 12:47
von snafu
Bitte fertige keine Screenshots an, sondern kopiere einfach den betreffenden Inhalt aus dem Terminal-Fenster in deinen Beitrag rein. Das vereinfacht vieles.

Nächstes Problem: Welcher Code wird überhaupt ausgeführt? Ich sehe da nur eine Python-Datei, aber nicht dessen Inhalt. Da kann man wenig mit anfangen. Und erwarte bitte nicht, dass ein potenzieller Helfer alle Threads von dir verfolgt, falls du diese Datei schon irgendwo anders im Forum gepostet hast.

EDIT: In dem Fenster, wo die `cmd.exe` ausgeführt wird, musst du die rechte Maustaste klicken, dann im Menü den Punkt "Markieren" auswählen. Anschließend mit der linken Maustaste den gewünschten Bereich markieren und die Aktion mit der rechten Maustaste abchließen. Dadurch landet der Inhalt der Markierung als Text in der Zwischenablage und kann woanders eingefügt werden. Ist recht kompliziert, mit der PowerShell geht es etwas einfacher.

Re: list indices must be integers, not str

Verfasst: Donnerstag 27. August 2015, 12:56
von Sirius3
@Pingponguin: als erstes solltest Du die Fehlerbehandlung des Programms reparieren. Wenn man Fehler nicht sinnvoll behandeln kann, sollte man sie überhaupt nicht behandeln. Wenn Du dann weißt, in welcher Zeile der Fehler auftritt, kannst Du zurückverfolgen, warum hier anscheinend eine Liste statt eines Wörterbuchs benutzt wird.

Re: list indices must be integers, not str

Verfasst: Donnerstag 27. August 2015, 13:46
von BlackJack
@Pingponguin: Ohne den Python-Quelltext zu kennen *und* die Datei die da verarbeitet wird *und* deren Spezifikation kann man da nicht viel sagen wo denn nun der Fehler genau liegt. In der JSON-Datei liegt der Fehler sicher nicht, denn die ist ja das *Ergebnis* und das Ergebnis ist hier halt das bei der Verarbeitung ein Fehler aufgetreten ist, der in der Ergebnisdatei gemeldet wird. Um die Stelle im Programm finden zu können wo das Problem aufgetreten ist, bräuchte man den kompletten Traceback und nicht nur die Zeichenkettenrepräsentation der Nachricht der Ausnahme.

Re: list indices must be integers, not str

Verfasst: Freitag 28. August 2015, 10:21
von Kebap
Pingponguin hat geschrieben: Weiß jemand, ob das nun ein Python oder ein JSON Fehler ist und wie ich bei der Fehlersuche am Besten verfahre?
Das ist ein Fehler in deinem Python Code:

Code: Alles auswählen

>>> my_list = ["A", "B", "C"]
>>> print my_list[2]
C
>>> print my_list["2"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not str
>>>

Re: list indices must be integers, not str

Verfasst: Freitag 28. August 2015, 11:49
von Pingponguin
Hallo,

vielen Dank für Eure Antworten. Ich habe den Code nicht angefügt, weil er zu lang ist und die 6000 erlaubten Zeichen überschreitet.

https://cloudopoly.de/index.php/s/Dym4e4DI0YtPgQZ

Re: list indices must be integers, not str

Verfasst: Freitag 28. August 2015, 11:55
von snafu
Bitte nutze ein Pastebin zum Hochladen von umfangreichem Code, z.B. dieses.

Re: list indices must be integers, not str

Verfasst: Freitag 28. August 2015, 12:13
von BlackJack
@Kebap: Problem ist das das nicht ”sein” Python-Code ist. Und der Fehler kann natürlich auch durch eine fehlerhafte Eingabedatei ausgelöst werden, denn die enthalten wohl teilweise auch JSON und wenn das irgendwo eine Zeichenkette statt einer Zahl enthält die dann im Programm als Index in eine Liste verwendet wird, dann wäre das kein Fehler im Programm.

Re: list indices must be integers, not str

Verfasst: Freitag 28. August 2015, 14:41
von Kebap
Habe den Code mal hochgeladen: https://gist.github.com/anonymous/c24320368cf8e7536ae3

@BlackJack: Das könnte sein, aber ich wollte es nicht gleich allzu kompliziert machen. :mrgreen:

Re: list indices must be integers, not str

Verfasst: Freitag 28. August 2015, 14:57
von BlackJack
@Kebap: Wieso hast Du den Code hochgeladen? Der existiert doch bereits auf Github in einem normalen öffentlichen Repository.

Und er sieht *echt* gruselig aus. :twisted:

Re: list indices must be integers, not str

Verfasst: Freitag 28. August 2015, 15:30
von /me
BlackJack hat geschrieben:Und er sieht *echt* gruselig aus. :twisted:
Mit "gruselig" ist das noch sehr wohlwollend umschrieben.

Re: list indices must be integers, not str

Verfasst: Freitag 28. August 2015, 17:36
von Kebap
BlackJack hat geschrieben:@Kebap: Wieso hast Du den Code hochgeladen? Der existiert doch bereits auf Github in einem normalen öffentlichen Repository. :twisted:
Situation normal, all fucked up.