所以我需要构建一个访问API以从防火墙中提取报告的脚本,下面是我做的哈希工作,对于那些精通python的人,请善待,我意识到我可能打破每一条规则。
所以问题:(脚本可以在这里找到 - https://github.com/Marct27/PAN_reporter)
我对函数的理解有限,我注意到我正在重用脚本的某些部分,我可以传递参数。
#Parse xml and get root key value
tree = ET.parse(resp)
root = tree.getroot()
#From return xml find job id of report
j=root.find('status')
jID=j.find('job')
我认为该函数看起来像这样:
def parseXML(arg1, arg2):
#Parse xml and get root key value
tree = ET.parse(resp)
root = tree.getroot()
#From return xml find job id of report
j=root.find(arg1)
jID=j.find(arg2)
print 'Job ID :', jID.text
return jID
然而,当我尝试用:
调用该函数时parseXML('status','job')
我最终得到以下错误:
NameErrorTraceback (most recent call last)
<ipython-input-4-03280b8af912> in <module>()
62 time.sleep(5)
63 #From xml get job status
---> 64 apiPullReport = '/api/?
type=report&action=get&job-id=%s&key=%s' % (jID.text, apiKey)
65 req = urllib2.Request(host+apiPullReport, head)
66 resp = urllib2.urlopen(req, context = ctx)
NameError: name 'jID' is not defined
我是否需要声明一个函数将更新的全局变量,或者是否有其他方式来定义变量?
答案 0 :(得分:0)
根据 coldspeed 的评论,指出需要定义函数返回的变量才能使用它。
首先
jID = parseXML('status','job')
,然后您可以在其功能之外使用它。 - cᴏʟᴅsᴘᴇᴇᴅ53分钟前
如果有人想要审核,请更新guthub文件。
再次感谢您的帮助