def enumerate_all_config_objects(baseDN):
url = 'https://www.AwebsiteThatIWontProvide.com'
payload={"ObjectDN":baseDN,"Pattern":"*aws*","Pattern":"*jkb*"}
r = requests.post(url, verify='/PathToKeyForVerification/', headers=headers,data=json.dumps(payload))
response = r.json()
status = r.status_code
print " "
print "Returned status code:", status
print " "
return response ['Objects'][0]['GUID']
输出:
返回状态代码:200
{11871545-8c5b-4c3c-9609-7372fae1add5}
处理完成,退出代码为0
我试图仅返回" GUID"来自json请求的信息。这是有效的(1187154 ...),当我在['对象']和[' guid']之间的索引中输入值时,每个值都从列表中成功生成。我的问题是,即使我打印出实际响应以验证输出是否正确,最终脚本也不应要求将任何内容转储到CSV文件。我必须在记忆中执行一切。我需要创建的下一个函数将使用返回的GUID值并使用这些值查询服务器。
如何从enumerate_all_config_objects
的输出中显示列表中的项目?我想先将它们打印出来进行故障排除。然后我将注释掉这个功能,并让第二个函数从该列表中提取每个值并使用它。
两个问题:
列表已正确填充,我已对此进行了验证。我只是不知道如何访问它或打印它。
答案 0 :(得分:0)
如果我理解正确,你希望做的事情如下:
def enumerate_all_config_objects(baseDN):
url = 'https://www.AwebsiteThatIWontProvide.com'
payload = {"ObjectDN": baseDN, "Pattern": "*aws*", "Pattern": "*jkb*"}
r = requests.post(url, verify='/PathToKeyForVerification/', headers=headers,data=json.dumps(payload))
response = r.json()
status = r.status_code
return map(lambda x: x["GUID"] , response['Objects'])
def use_guids(guid_list):
#do_stuff, for example, to show the guids:
for guid in guid_list:
print(guid)
use_guids(enumerate_all_config_objects(baseDN=<replaceWithYourParameter>))
编辑:要清除评论中的问题,我决定嘲笑您说已经有效的API调用
def enumerate_all_config_objects():
foo = {"GUID" : 1}
bar = {"GUID" : 2}
baz = {"GUID" : 3}
response = {"Objects": [foo, bar, baz] }
mapped = list(map(lambda x: x["GUID"] , response['Objects']))
return map(lambda x: x["GUID"] , response['Objects'])
def use_guids(guid_list):
#do_stuff, for example, to show the guids:
for guid in guid_list:
print(guid)
use_guids(enumerate_all_config_objects())
打印出来
1
2
3
如果要使用从函数计算的值,则需要使用return
关键字。
例如return map(lambda x: x["GUID"] , response['Objects'])
,在这个新示例中将返回包含[1, 2, 3]
的地图对象。然后可以使用此返回值,例如在我的第一个示例中将其传递给另一个函数。
在上面的例子中,列表被传递给use_guids
函数,该函数打印列表的内容。
编辑2 :如果你真的坚持要求一个处理一个 GUID的函数,你可以这样做:
def enumerate_all_config_objects(baseDN):
url = 'https://www.AwebsiteThatIWontProvide.com'
payload = {"ObjectDN": baseDN, "Pattern": "*aws*", "Pattern": "*jkb*"}
r = requests.post(url, verify='/PathToKeyForVerification/', headers=headers,data=json.dumps(payload))
response = r.json()
status = r.status_code
for obj in response['Objects']:
use_guid(obj["GUID"])
def use_guid(guid):
print(guid)
# Do some other stuff.
# ...
enumerate_all_config_objects(baseDN=<replaceWithYourParameter>)