Überprüfen Sie, ob request.json() NoneType istPython

Python-Programme
Anonymous
 Überprüfen Sie, ob request.json() NoneType ist

Post by Anonymous »

Ich mache API-Aufrufe und erwarte, einige Null-Antworten oder NoneTypes zu erhalten. Ich versuche jedoch, elegant damit umzugehen.
Dies ist das Standardverhalten:

Code: Select all

res = req.json()
res.get("key", {}).get("key")

AttributeError: 'NoneType' object has no attribute 'get'
Im Folgenden sind die Möglichkeiten aufgeführt, mit denen ich versucht habe, es zu fangen, aber es hat nicht funktioniert:

Code: Select all

if res is None or isinstance(res, type(None)) or len(res) ==  0
Die fraglichen NoneType-Fehler haben len(req.text) = 16 ?

Vs +1k für die Nicht-NoneType-Fehler.
Derzeit werden sie auf diese Weise abgefangen:

Code: Select all

if len(req.text) < 100: # Empty JSON Object
return None
Aber ich bin mir ziemlich sicher, dass dies nicht die beste Vorgehensweise ist.

Kann jemand bei der Lösung dieses Problems helfen?
UPDATE

Code: Select all

print(type(res))


print(res)
{'key': None}
LÖSUNG

Code: Select all

if res.get("key") is None:
return None
Hätte weiter untersucht werden sollen.
MEA CULPA
Mir ist klar, dass es sich beim AttributeError um das zweite .get("key") und nicht um das frühere .get("key", {}) handelte, während ich es (das 2. get) nicht in mein ursprüngliches, unbearbeitetes Dokument aufgenommen habe. Beitrag.
Der Typ von res.get("key", {}) ist None
Entschuldigung und vielen Dank an alle!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post