2013-02-05 162 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对象