Я пытаюсь использовать эту полезную нагрузку, чтобы передать ее в почтовый запрос Python. Однако при этом он отправляет полезную нагрузку с пробелами между полями. Это вызывает http 400. Как этого избежать в Python.
payload = {"start_time":f"{start}","end_time":f"{end}","filter":{"site":f"{site}","element":f"{elementid}"},"interval":"5min","metrics":[{"name":"CPUUsage","statistics":["max"],"unit":"percentage"}],"view":{"summary":True},}
print("payload data: ", payload)
Выход:
payload data: {'start_time': '2024-09-19T16:29:37.607', 'end_time': '2024-09-19T16:24:37.607', 'filter': {'site': '16970975636546', 'element': '1569874521567'}, 'interval': '5min', 'metrics': [{'name': 'CPUUsage', 'statistics': ['max'], 'unit': 'percentage'}], 'view': {'summary': True}}
Мне не нужны пробелы в выводе полезных данных.
def get_sys_metrics(self):
# has to be called immediately after bearer token
api_endpoint = "/sdwan/monitor/v2.3/api/monitor/sys_metrics"
full_url = f"{self.api_sase_url}{api_endpoint}"
url = "https://api.sase.paloaltonetworks.com/s ... ys_metrics"
# read the file for site and element ids
with open("elements_id.json", "r", encoding='utf-8') as site_element_id:
d = json.load(site_element_id)
payloads = []
for i in d:
site = i["site_id"]
elementid = i["element_id"]
payload = {"start_time":f"{start}","end_time":f"{end}","filter": {"site":f"{site}","element":f"{elementid}"},"interval":"5min","metrics":[{"name":"CPUUsage","statistics":["max"],"unit":"percentage"}],"view":{"summary":True},}
print("+++++++", payload)
payloads.append(payload)
# Pass the headers to request body
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {self.bearer_token}",
}
# POST request
for payload in payloads:
response = requests.post(url, headers=headers, json=payload, verify=False)
print(response.json())
prisma_obj = PrismaAccess("token", client_id, client_secret, tsg_id)
prisma_obj.get_bearer_token()
elements = prisma_obj.get_sys_metrics()
#Print the metrics
print(elements)
Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-payload