Я немного переписал ваши функции, теперь вы сможете получить все идентификаторы из ответа JSON. Я предлагаю вам изучить основы словарей и списков в Python
from requests.auth import HTTPBasicAuth
import requests
import json
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
def countries():
data = requests.get("https://10.24.21.4:8543/api/netim/v1/countries/", verify=False, auth=HTTPBasicAuth("admin", "admin"))
rep = data.json()
return [elem.get("id","") for elem in rep['items']]
countries()
Обновление: если вы sh извлекаете значение ключа "path" и одновременно значение "id" "ключ, вам понадобится список словарей, где каждый словарь соответствует одной записи из json.
измененная функция выглядит следующим образом:
def countries():
data = requests.get("https://10.24.21.4:8543/api/netim/v1/countries/", verify=False, auth=HTTPBasicAuth("admin", "admin"))
rep = data.json()
return [{"id":elem.get("id",""),"path":elem["links"]["self"]["path"]} for elem in rep['items']]
the get()
возвращает значение по умолчанию, если ключ отсутствует в словаре. Функция, как новая, так и предыдущая, не завершится ошибкой, если значения не были возвращены в ответе JSON для ключей id и path
Если вы уверены, что значение links
всегда будет доступно, вы можете использовать указанную выше функцию напрямую, иначе вам придется написать настраиваемую функцию, которая будет анализировать ключ links
и возвращать пустую строку, если она пуста в json