Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dicionário dentro de listas

Pessoal, Estou com uma situação que não estou conseguindo solucionar, Estou consumindo uma API de um site, onde ele me retorna um dicionário, dentro de uma lista. Não estou conseguindo extrair estes dados para dar um print na informação. Segue exemplo do resultada da API, eu resumi a saída, ele é uma API Free da Cisco para testes {'response': [{'family': 'Wireless Controller', 'hostname': '3504_WLC', 'macAddress': '50:61:bf:57:2f:00', 'managementIpAddress': '10.10.20.51', 'platformId': 'AIR-CT3504-K9', 'serialNumber': 'FCW2218M0B1', 'series': 'Cisco 3500 Series Wireless LAN Controller', 'softwareType': 'Cisco Controller', 'softwareVersion': '8.8.111.0', 'type': 'Cisco 3504 Wireless LAN Controller', 'upTime': '124 days, 19:32:05.04', 'waasDeviceMode': None}, {'family': 'Switches and Hubs', 'hostname': 'leaf1.test.com', 'macAddress': '00:72:78:54:d1:00', 'managementIpAddress': '10.10.20.81', 'platformId': 'C9300-48U', 'serialNumber': 'FCW2214L0VK', 'series': 'Cisco Catalyst 9300 Series Switches', 'softwareType': 'IOS-XE', 'softwareVersion': '16.6.4a'; 'type': 'Cisco Catalyst 9300 Switch', 'upTime': '194 days, 8:39:15.72', 'waasDeviceMode': None}], 'version': '1.0'}

2 respostas
solução!

Tirando o ; dentro da lista, basta fazer um loop para caminhar entre os dicionários na lista (no exemplo há dois) e um segundo loop para percorrer as chaves e valores de cara um desses dicionários:

for item_of_list in testes["response"]:
      for key_of_dict, value_of_dict in item_of_list.items():
            print(f'{key_of_dict}: {value_of_dict}')

Se quiser ir direto para um valor é só usar:

print(testes["response"][0]["family"])  # valor contido na chave "family" do primeiro dicionário da lista
print(testes["response"][1]["family"])  # valor contido na chave "family" do segundo dicionário da lista

Por exemplo

Muito obrigado pela ajuda,

Clareou bastante as ideias, agora estou trabalhando na formatação dos dados.

Vlw