2017-07-02 44 views
0

我做了一些代碼Python] JSON ValueError,但json格式看起來很完美。爲什麼錯誤發生

jsonFile = json.loads(data.data, 'utf-8') 
print 'jsonFile' 

結果是:

{u'INFO': {u'CALL': u'000000000000', u'MODULE': u'POWERVOICE'}, u'PersonType': u'Caller', u'KEYWORD': {u'start': 720, u'end': 1920, u'value': [u'\ubc31\ud654\uc810']}, u'END_FLAG': 0, u'TEXT': {u'start': 720, u'end': 1920, u'value': u'\ub730\uc885\ud569\ubc31\ud654\uc810'}, u'FID_INFO': {u'SID': u'123456789', u'CallConfidence': u'0.123', u'FakeCall': u'1'}, u'POI': {u'start': 720, u'end': 1920, u'value': [u'']}, u'SITUATION': {u'Fire': 0, u'FirstAid': 0, u'Rescue': 0}} 

但錯誤發生

bad callback: <function resultCallback at 0x7f1ac4ce6c08> 
Traceback (most recent call last): 
    File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/topics.py", line 720, in _invoke_callback 
    cb(msg) 
    File "/root/catkin_ws/src/listen_project/src/node_evaluate.py", line 58, in resultCallback 
    jsonFile = json.loads(data.data, 'utf-8') 
    File "/usr/lib/python2.7/json/__init__.py", line 351, in loads 
    return cls(encoding=encoding, **kw).decode(s) 
    File "/usr/lib/python2.7/json/decoder.py", line 366, in decode 
    obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 
    File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode 
    raise ValueError("No JSON object could be decoded") 
ValueError: No JSON object could be decoded 

------------------------------------- 

是我的JSON文件無法驗證? 謝謝。

回答

0

你有一個python文字,而不是一個json對象。 (可能會加載ast.literal_eval

json對所有內容使用雙引號字符串。

從發佈的代碼不完全清楚,data.data可能已經是python對象了?

錯誤意味着您正試圖loads空字符串。你能說明data.data是什麼嗎?