通过请求python lib向Okta API发出多个HTTP请求



我对bash脚本之外的编程相对陌生,所以任何提示都将不胜感激。

我正在编写一个python脚本来调用Okta Group API,以便通过一个yaml文件生成一个组列表。

我正在使用请求库和for循环来完成此操作。该脚本只生成我从yaml文件传入的最后一项。我是否没有正确使用for循环?

#!/usr/bin/env python3
import requests
import yaml
url = "https://org.okta.com/api/v1/groups"
headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization" : "SSWS AUTHKEY",
"User-Agent" : "Custom-Python-Agent"
}
with open(r'groups.yaml') as file:
documents = yaml.full_load(file)
for okta_groups in documents['profile']['groups']:
body = {'profile': {'name': okta_groups['name'], 'description': okta_groups['description']} }
r = requests.post(url, headers=headers, json=body)
print(r)

YAML文件:

profile:
groups:
- name: aws#test#api#001
description: test description 1
- name: aws#test#api#002
description: test description 2
- name: aws#test#api#003
description: test description 3

谢谢!

只需缩进这些:

r = requests.post(url, headers=headers, json=body)
print(r)

进入循环:

for okta_groups in documents['profile']['groups']:
body = {'profile': {'name': okta_groups['name'], 'description': okta_groups['description']} }
r = requests.post(url, headers=headers, json=body)
print(r)

这样,您将为"的每个实例发送一个请求;身体;而不仅仅是最后一个。

最新更新