Ich nutze Python 3.4.
Ich mache Calls mit dem requests Modul zu einer API und bekomme die Antwort in json. Mit .json() kann ich die Antwort dann in was lesbares umwandeln. Das klappt auch meistens.
Nun kommt es ab und an vor, dass ich beim Versuch die antwort mit .json() umzuwandeln eine Fehlermeldung bekomme, wie:
Expecting value: line 1 column 1 (char 0)
Wenn ich mir die Antwort ohne json() ausgebe, ist es meistens irgendein Fehler response (normal ist 200), wie <Response [502]>.
Ich habe aber auch festgestellt, dass json() probleme hat, wenn in der Antwort Zeichen sind, die es nicht kennt. So bekomme ich heute
Expecting value: line 1 column 45 (char 44) , obwohl es ein <Response [200]> ist.
Ich hatte sowas schonmal und hatte irgendwie festgestellt, dass es nicht geht, weil zb ein ü oder sonstige Buchstaben in der Antwort waren.
Gibt es etwas, dass ich anstelle von json() machen kann, um die Antwort korrekt umzuwandeln? Oder muss ich noch iwas anderes zusätzlich zum json() machen, damit diese Fehler verschwinden und ich eine vernünftige Antwort erhalte?
edit:
achso, wen der komplette Traceback interessiert:
Traceback (most recent call last):
File "/API.py", line 46, in query_call
return (response.json() )
File "/usr/lib/python3/dist-packages/requests/models.py", line 786, in json
return json.loads(self.content.decode(encoding), **kwargs)
File "/usr/lib/python3.4/json/__init__.py", line 318, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.4/json/decoder.py", line 343, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.4/json/decoder.py", line 361, in raw_decode
raise ValueError(errmsg("Expecting value", s, err.value)) from None
ValueError: Expecting value: line 1 column 45 (char 44)