Я пытаюсь сделать несколько (JSON) вызовов API нашему контроллеру Wi-Fi и получить некоторую информацию. Когда я сохраняю ответ JSON в dict, он каким-то образом видит только несколько ключей, а именно:
dict_keys(['totalCount', 'hasMore', 'firstIndex', 'list'])
и предметы:
dict_items([('totalCount', 32), ('hasMore', False), ('firstIndex', 0),
('list', [{'id': 'ehgfhafgf', 'name': 'fasdfsd
xxxx'}, {'id': 'efasfsfas',
'name': 'zxcva'}])])
Я удалил много элементов, так что это имело бы смысл, иначе было бы слишком много текста.
Как видите, dict распознает неверные переменные как ключи. Потому что в качестве ключей мне нужны id и name. Есть ли способ вручную назначить ключи dict или трюк для имитации этого?
Мой фрагмент кода:
#Method that retrieves all zones
def getZones():
r = requests.get("url..", verify=False, cookies=cookie)
print(type(r.json()))
jsonResponse = r.json()
print("items: \n")
print(jsonResponse.items())
print("\nkeys: \n")
print(jsonResponse.keys())
print(jsonResponse.get('id'))
return r
делаю много распечаток по причинам отладки.






Ваш вопрос был бы яснее, если бы вы показали фактический ответ JSON.
Однако из того, что вы опубликовали, ясно, что id и name действительно не являются ключами верхнего уровня, а являются ключами внутри вложенных словарей внутри списка, назначенного ключу list. Итак, вы должны получить их оттуда:
for item in jsonResponse['list']:
print(item['id'], item['name'])
Спасибо за быстрый ответ, сразу же попробую. Я не смог опубликовать его полностью, так как в ответе есть конфиденциальные данные
просто чтобы быть внимательным, что такое именно json - полный словарь {ключ: значение и т. д.}?