2016-07-28 12 views
0

Ich versuche, einen Ausnahmefehler nach json zu speichern. Obwohl ich mir ziemlich sicher bin, dass ich eine Zeichenfolge speichere, bekomme ich immer noch einen Schreibfehler.JSON TypeError: erwartete Zeichenfolge oder Puffer

Relevante Codeabschnitt:

except ConnectionError as e: 
     s = str(e) 
     print type(s) 
     data = json.loads({'error message': s}) 
     print "JSON load succeeded" 

Traceback:

<type 'str'> 

Traceback (most recent call last): 
    File "[REDACTED]", line 36, in <module> 
    ping(SERVERS) 
    File "[REDACTED]", line 29, in ping 
    data = json.loads({'error message': s}) 
    File "C:\Python27\Lib\json\__init__.py", line 339, in loads 
    return _default_decoder.decode(s) 
    File "C:\Python27\Lib\json\decoder.py", line 364, in decode 
    obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 
TypeError: expected string or buffer 

Das ist mir ganz unverständlich. Ich würde jede Hilfe bei dieser Angelegenheit schätzen.

Antwort

1

Sie suchen nach json.dumps(), nicht json.loads(). Versuchen Sie folgendes:

data = json.dumps({'error message': s}) 

json.dumps(obj): Serialisieren obj zu einem JSON str formatiert
json.loads(s): Deserialize s (a str Instanz einen JSON-Dokument enthält) zu einem Python-Objekt

Verwandte Themen