2016-07-28 86 views
0

我想將異常錯誤存儲到json。儘管我很確定我正在存儲一個字符串,但它仍然給我一個打印錯誤。代碼JSON TypeError:預期的字符串或緩衝區

相關章節:

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

回溯:

<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 

這是很莫名其妙給我。我很感謝這件事的任何幫助。

回答

1

您正在查找json.dumps(),而不是json.loads()。嘗試:

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

json.dumps(obj):序列obj到格式化str
json.loads(s)一個JSON:反序列化s至Python對象(包含JSON文檔str實例)

相關問題