0
votes

Obtenir des clés et des valeurs de la liste de réponses API de Zabbix Python3

J'ai un problème avec des travaux avec des données de Zabbix. Je crée une demande comme ci-dessous:

('host': 'Cisco', 'location': 'Tokyo' etc. etc.) 


11 commentaires

Vous ne pouvez pas accéder à des champs comme x [0] ['hôte']?


Imprimer (x [0] ['Description']) TypeError: Les indices de chaîne doivent être entiers


Zabbix API Réponse, est la liste ou STR? La liste que vous avez postée ne donnera pas d'erreur si vous allez essayer d'accéder à un élément comme ça. vous devriez vérifier la réponse si c'est "[]" ou []


Imprimer (Type (Demandes))


peut montrer la sortie des demandes [0]?


En outre, la réponse brute zabbix (dans mon cas est une liste variable "Demandes" Je reçois la liste qui n'est pas lisible par JSON Viewer... Donc je fais JSReQuest = json.dumps (requêtes) et est maintenant le type de chaîne et ok pour le format JSON et OK pour JSON Format


La réponse est ci-dessus dans la description de mon problème (après l'en-tête "puis de Zabbix API I reçoit une réponse") [{'Hostid': '10460' ..........


faire, x = json.loads (jsrequests) puis x [0] ['"Description']


Ok, je sais cela, mais le problème est de savoir ce qui collecte les clés avec des valeurs car je dois envoyer ceci par API XML. et deuxième cas est de savoir comment rechercher la liste en réponse, pas de valeurs de chaîne. ZabbiXaptivalues ​​Cela dépend de l'hôte afin que cette liste puisse être différente.


Demandes [0] [Valeurs Zabbix] Au lieu des demandes [0] ['Description'] et je dois faire correspondre l'hôte au nom de l'hôte, la description à la description, pas la clé: hôte à Valeurs: Description.


resp_dict = x [0] n'est-ce pas un dict ce que vous demandiez?


3 Réponses :


0
votes

Imprimer (Demandes [0]) XXX PRE>

Imprimer (Demandes) P>

[{'hostid': '10460', 'description': 'This is testing host names Fortigate 100D.', 'host': 'Fortinet-Fortigate 100D', 'inventory': {'hostid': '10460', 'oob_ip': '', 'location': 'Warsaw', 'os': ''}}]


0 commentaires

0
votes

La réponse zabbix est de la liste de types, puis vous la convertissez en données JSON, alors c'est maintenant une chaîne JSON, vous ne pouvez pas accéder à des éléments tels que ceux-ci, vous devez charger les données JSON telles que

x = requests[0] # dict


0 commentaires

0
votes

Simple ... je suis nouveau dans Python et ... Ugh Merci. Donc, j'ai: xxx

et je reçois: xxx


0 commentaires