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 :

Erreur de key json [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Par défaut Erreur de key json
    bonjour,
    pour un travail pour mon école j'ai besoin de récupérer des données que j'ai préalablement enregistrées dans un fichier json sauf que je ne comprends pas pourquoi mon code ne marche pas (je suppose qu'il y a des erreurs mais je n'ai trouvé nul part des indices pour les trouver et les corriger). Je test pour déterminer la ressemblance entre la liste Ld et la liste dans 'key2' de chaque "hotel" la ressemblance est notée sous forme de score
    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
     
    import random
    import json
    Ld=[]
    m=json.dumps({'hotel1':[{'key1':10,'key2':[0,1,0,1,0],'key3':True}],'hotel2':[{'key1':10,'key2':[0,0,0,1,0],'key3':True}]})
    n=json.loads(m)
    print(m,n)
    for i in range (0,5):
        Ld.append(random.randint(0,1))
    for key in n:
        print(key)
        for m in n[key]:
            k=n['key2']
            print(Ld)
            print(k)
            score=0
            for i in range (0,len(k)):
                   if k[i]+Ld[i]==2:
                       score=score+1
            print(score)
    merci pour tout aide ou tout indice permettant de comprendre où est mon erreur qui est indiquée dans la seconde boucle for avec un "n['key2']" inexistant selon python.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par hippo.mllvs Voir le message
    merci pour tout aide ou tout indice permettant de comprendre où est mon erreur qui est indiquée dans la seconde boucle for avec un "n['key2']" inexistant selon python.
    Je crois bien que python a raison lol...

    Dans la boucle :

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for m in n[key]:
         k=n['key2']

    Je pense que tu voulais utiliser m et non n :

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for m in n[key]:
         k=m['key2']

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut


    Il ne faut pas confondre les dict et les list !

    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
    import random
    import json
     
    # Sérialise obj vers un JSON formaté str, en utilisant cette table de conversion.
    m = json.dumps({'hotel1': [{'key1': 10, 'key2': [0, 1, 0, 1, 0], 'key3':True}],
                    'hotel2': [{'key1': 10, 'key2': [0, 0, 0, 1, 0], 'key3':True}]})
     
    # Déserialise une instance de str, bytes ou bytearray contenant un document JSON vers un objet Python en utilisant cette table de conversion.
    n = json.loads(m)
     
    for key, value in n.items(): # dict
        for elem in value: # list
            for k, v in elem.items(): # dict
                print(k, v)
     
    '''
    key1 10
    key2 [0, 1, 0, 1, 0]
    key3 True
    key1 10
    key2 [0, 0, 0, 1, 0]
    key3 True
    '''

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Par défaut Résolu
    Merci beaucoup effectivement mon erreur était toute bête et j'ai encore un peu de mal avec les dict j'en suis qu'au prémices je pense

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

Discussions similaires

  1. Erreur Parsing avec JSON
    Par VB 2008 dans le forum Android
    Réponses: 1
    Dernier message: 10/08/2012, 13h03
  2. Erreur "Duplicate keys when loading Input Field"
    Par Joz79 dans le forum QlikView
    Réponses: 1
    Dernier message: 18/04/2012, 14h00
  3. Erreur Hibernate et JSon : ça tourne en rond
    Par andlio dans le forum Hibernate
    Réponses: 4
    Dernier message: 12/10/2011, 10h03
  4. [Dojo] erreur de decodage json a cause de _loadObject
    Par maximus2010 dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 17/01/2011, 16h19
  5. Erreur Duplicate key name
    Par snipes dans le forum Requêtes
    Réponses: 15
    Dernier message: 13/04/2006, 15h55

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