我正在尝试调试现有脚本,并在运行脚本时遇到以下错误。 ./check_tandbergvideo CE s 10.50.174.138
此脚本尝试检查端点是否已注册并返回状态。
Traceback(最近一次调用最后一次):文件“./check_tandbergvideo”, 第156行,在main()文件“./check_tandbergvideo”第114行, 在主EP = getXML(sys.argv [3],sys.argv [1])文件中 “./check_tandbergvideo”,第79行,在getXML中H323Status = getElement(tree,xml2 +“H323 /”+ xml2 +“Gatekeeper /”+ xml2 +“Status”)+ “。错误:”+ getElement(树,XML2 + “H323 /” + XML2 + “关守/” + XML2 + “理”)
TypeError:+不支持的操作数类型:'NoneType'和'str'
以下是抛出错误的代码部分。
if model == "CE":
# SIPStatus = getElement(tree,xml2+"SIP/"+xml2+"Registration/"+xml2+"Status") + ". Errors: " + getElement(tree,xml2+"SIP/"+xml2+"Registration/"+xml2+"Reason")
SIPStatus = str(getElement(tree,xml2+"SIP/"+xml2+"Profile/"+xml2+"Registration/"+xml2+"Status")) + ". Errors: " + str(getElement(tree,xml2+"SIP/"+xml2+"Profile/"+xml2+"Registration/"+xml2+"Reason"))
H323Status = getElement(tree,xml2+"H323/"+xml2+"Gatekeeper/"+xml2+"Status") + ". Errors: " + getElement(tree,xml2+"H323/"+xml2+"Gatekeeper/"+xml2+"Reason")
ReleaseKey = getElement(tree,xml2+"SystemUnit/"+xml2+"Software/"+xml2+"ReleaseKey")
EPModel = getElement(tree,xml2+"SystemUnit/"+xml2+"ProductId")
SWVer =getElement(tree,xml2+"SystemUnit/"+xml2+"Software/"+xml2+"Version")
else:
badSyntax()
EPData = {"Model":EPModel,"SIP":SIPStatus,"H323":H323Status,"RK":ReleaseKey,"SW":SWVer}
return(EPData)
请问您是否验证代码H323的第二行是否具有正确的语法?
答案 0 :(得分:1)
这不是您脚本中的错误。它只是说TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
,基本上意味着它无法合并None
和"string"
。您应该执行str(None)+"string"
或设置一些条件if s == None: do something
以避免使用。
答案 1 :(得分:0)
非常感谢大家的宝贵意见......我试过这个并且有效。
H323Status = str(getElement(tree,xml2+"H323/"+xml2+"Gatekeeper/"+xml2+"Status")) + ". Errors: " + str(getElement(tree,xml2+"H323/"+xml2+"Gatekeeper/"+xml2+"Reason"))