IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

résultat -> liste [Python 2.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 42
    Par défaut résultat -> liste
    Bonjour,

    Je suis assez nouveau sur le langage python.
    je travailler sur un projet d'automatisation de données.

    J'ai une fonction qui me retourne les numéros des items d'un host.

    Il me les retourne de cette manière:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    24320
    24337
    24315
    24326
    24328
    24331
    24313
    (je fais exprès de ne pas utiliser le mots liste)

    Donc j'ai en sortie les items, malheureusement il y a un "mais". J'utilise cette sortie pour retrouver la valeur associé à chaque items. Sauf que python considère que la sortie est un seul objet et non plusieurs.
    J'aimerais donc savoir comment placer cette sortie dans une liste(un tableau) pour pouvoir l'utiliser dans une boucle.

    donc en gros, il faudrait que le résultat sois intégré dans une liste, comme ceci: (pour être utilisable)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ["24320","24337",....,"24313"]
    Si vous avez une solution à me proposer, je suis preneur.

    Cordialement,

    Chattam

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Pour répondre il faudrait voir ce qu'est cette fonction qui "retourne les numéros des items d'un host"

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par chattam Voir le message
    Sauf que python considère que la sortie est un seul objet et non plusieurs.
    J'aimerais donc savoir comment placer cette sortie dans une liste(un tableau) pour pouvoir l'utiliser dans une boucle.
    En supposant que l'"objet" est un ensemble de "lignes", on pourrait écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> data='''24320
    ... 24337
    ... 24315
    ... 24326
    ... 24328
    ... 24331
    ... 24313'''
    >>> data.splitlines()
    ['24320', '24337', '24315', '24326', '24328', '24331', '24313']
    >>>
    Mais ce ne sont que des suppositions....

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 42
    Par défaut
    Voici mon script, cela va peut être vous aider à comprendre. J'interroge un serveur zabbix.

    Je m'authentifie. Puis je récupère les items(itemid pour être plus précis) de mon host.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    #!/usr/lib/env python
     
    import urllib2
    import json
     
    """fonction authentification """
     
    def authenticate(url = "https://toto.net/zabbix/api_jsonrpc.php", username = "titi", password = "tata"):
     
            values = {'jsonrpc': '2.0','method': 'user.authenticate','params': {'user': username,'password': password},'id': '0'}
     
            data = json.dumps(values)
            req = urllib2.Request(url, data, {'Content-Type': 'application/json-rpc'})
            response = urllib2.urlopen(req, data)
            output = json.loads(response.read())
            return output['result']
     
     
    """ fonction de recuperation des items"""
    def get_item(url = "https://toto.net/zabbix/api_jsonrpc.php", username = "titi", password = "tata"):
            auth = authenticate(url, username, password)
     
            values = {'jsonrpc': '2.0','method': 'item.get','params': {'output':'extend','host':'srv018'},'auth': auth,'id': '0'}
     
            data = json.dumps(values)
            req = urllib2.Request(url, data, {'Content-Type': 'application/json-rpc'})
            response = urllib2.urlopen(req, data)
            output = json.loads(response.read())
     
            nbr = len(output['result'])
            print nbr
     
            for i in range(nbr):
                    print output['result'][i]["itemid"]
     
    """test fct item"""
    print get_item()
    j'ai déjà essayer splitlines et tout la tripoté de split à vrai dire, sans grand succès. La raison est que j'ai un none en fin de "liste" après mes items

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      File "test_item.py", line 37, in <module>
        print get_item().splitlines()
    AttributeError: 'NoneType' object has no attribute 'splitlines'

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    et ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    items = [i["itemid"] for i in output['result']]
    print items
    ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 42
    Par défaut
    Alors VinSs, voici le résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [u'24329', u'24342', u'24317', u'24330', u'24655', u'24650', u'24340', u'24318', u'24334', u'24651', u'24312', u'24327', u'24333', u'24341', u'24649', u'24653', u'24332', u'24314', u'24324', u'24648', u'24319', u'24339', u'24316', u'24647', u'24311', u'24654', u'24325', u'24336', u'24656', u'24321', u'25097', u'24323', u'24320', u'24337', u'24315', u'24326', u'24328', u'24331', u'24313', u'24338', u'24652', u'24335', u'24322']
    None
    Si on pouvait supprimer ce none, ça serait nickel.
    J'ai fait une simple boucle pour voir si je pouvais utiliser le résultat.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for i in get_item():
            print i
     
    résultat:
    TypeError: 'NoneType' object is not iterable
    Je ne sais pas si c'est possible?

  7. #7
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Ce None n'est pas dans la liste !

    d'ou sort-il ?

    ...

    Cherche plus, la liste est printée dans la fonction mais la fonction elle, elle retourne None.

    Alors fait-lui retourner la liste.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Vxi3] Résultat partiel liste valeurs en invite
    Par samy37 dans le forum Webi
    Réponses: 9
    Dernier message: 24/11/2015, 08h59
  2. Recherche retournant plusieurs résultats dans liste déroulante
    Par Akhlan dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/01/2013, 04h02
  3. Recherche retournant plusieurs résultats dans liste déroulante.
    Par Yann56 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/01/2010, 01h49
  4. Résultats de List<>
    Par punisher999 dans le forum C#
    Réponses: 1
    Dernier message: 23/01/2009, 15h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo