bekommen, wenn ich json.loads in Python 3 und fangen alle daraus resultierenden Fehler zu verwenden, wie:Wie Fehlerstelle von json.loads in Python
try:
data = json.loads(string)
except ValueError as err:
print(err)
ich eine hilfreiche Nachricht wie erhalten:
Expecting ',' delimiter: line 12 column 12 (char 271)
Ich würde gerne in der Lage sein, dies dem Benutzer anzuzeigen, zusammen mit genau der Stelle, die das Problem verursacht (ich lese in benutzerdefinierten JSON). Wie kann ich die Zeile und die Spalte heraus bekommen?
Ich könnte eine Regex auf Fehler verwenden, aber das fühlt sich wie eine schlechte Idee, wie ich nicht weiß, ob diese Nachricht internationalisiert ist, und konnte in verschiedenen Versionen von Python ändern. Gibt es einen besseren Weg?
Dies ist sehr interessant, aber ich denke, ich würde es vorziehen, die Zeichenfolge neu zu bestimmen, wie ich immer etwas anderes tun kann, wenn meine Regex in einer zukünftigen Version nicht übereinstimmt, aber dies könnte (zu mir scheint) zu einigen führen wirklich schreckliche Nebenwirkungen. Allerdings beantwortet dies auch immer noch die Frage als "nein", und lassen Sie mich auch alle Formate der Nachricht nachschlagen, die ich zurückbekommen könnte. Vielen Dank! –
Ich denke, es wäre schöner, wenn der JSON-Parser eine besser qualifizierte Exception zurückgeben würde, die diese Felder enthält. Ich habe ein [Problem] (http://bugs.python.org/issue19361) dafür geöffnet. –