Можно ли как-нибудь получить вывод, отображающий только те IP-адреса, которые не были введены пользователем в начале скрипта?
Да, все вы нужно отфильтровать массив data['filters']
из ответа, исключая нужный IP. Проверьте фрагмент кода ниже:
def get_asset_group_criteria(group_number):
asset_group_number = str(group_number)
asset_group_path = "/api/3/asset_groups/" + asset_group_number + "/search_criteria"
url5 = server + asset_group_path
response = requests.request("GET", url5, headers=headers, verify=False)
data = response.json()
return data
def put_asset_group_criteria(group_number, data):
asset_group_number = str(group_number)
asset_group_path = "/api/3/asset_groups/" + asset_group_number + "/search_criteria"
url5 = server + asset_group_path
response = requests.request("PUT", url5, json=data, headers=headers, verify=False)
return response
x = input("What is the asset group id?: ")
ip = input("What IP should not be included?: ")
data = get_asset_group_criteria(x)
data['filters'] = [filter for filter in data['filters'] if filter['value'] != exclude_ip]
print(data)
resp = put_asset_group_criteria(x, data)
print(resp)
Что я сделал, так это обновил массив data['filters']
, сгенерировав новый, скопировав каждый элемент, кроме элементов со значением, равным exclude_ip
аргумент.
Вывод должен быть: {'match': 'any', 'filters': [{'field': 'ip-address', 'operator': 'is', 'value': '192.168.1.0'}]}
, если сообщается 192.168.1.1
.
Запрос PUT очень похож на GET с использованием вашего текущего интерфейса, все, что вам нужно изменить, - это имя метод, от "GET"
до "PUT"
, и передайте в запрос аргумент json
, содержащий ваши данные. Проверьте документы .