2013-02-05 161 views
1

我有一個KeyError異常與此Python代碼的Python KeyError異常

service = self.get_cd_service() 
browse_response = service.Browse(ObjectID=str(object_id), 
           BrowseFlag=browse_flag, 
           Filter=filter, 
           StartingIndex=starting_index, 
           RequestedCount=requested_count, 
           SortCriteria=sort_criteria) 
elt = Element.from_string(browse_response['Result']) 
browse_response['Result'] = elt.get_items() 
return browse_response 

和錯誤是:

Traceback (most recent call last): 
    File "CommandlLineControlPointAv.py", line 93, in <module> 
    main() 
    File "CommandlLineControlPointAv.py", line 89, in main 
    cmdline.run() 
    File "CommandlLineControlPointAv.py", line 68, in run 
    self.cmd_browse(c.split(' ')[1]) 
    File "CommandlLineControlPointAv.py", line 48, in cmd_browse 
    result = self.browse(id, 'BrowseDirectChildren', '*', 0, 10)['Result'] 
    File "/usr/local/lib/python2.7/dist-packages/brisa/upnp/control_point/control_point_av.py", line 136, in browse 
    elt = Element.from_string(browse_response['Result']) 
KeyError: 'Result' 

THX的幫助/ 最好的問候。

雷姆

+2

'service.Browse()'可能不會返回字典。 –

+0

瀏覽回覆是什麼樣的?在設置elt的行上或者行後的關鍵錯誤是? – thegrinner

+1

@GrijeshChauhan如果對象不是可下標的,而是'KeyError',則會得到一個'TypeError'。 – chepner

回答

3

browse_response沒有一個關鍵Result檢查什麼browse_reponse包含

之後service.Browse呼叫 import pdb; pdb.set_trace()

您可以刪除一個調試器,你可以通過蟒蛇logging

日誌 broser_response對象