-2
votes

Imprimer uniquement des parties spécifiques du fichier JSON

Je me demande ce que je fais mal en essayant d'imprimer les données du nom du code suivant dans Python. XXX

Et c'est l'API que je récupère les données de: < / p> xxx


1 commentaires

Bienvenue dans le débordement de la pile! Veuillez indenter votre code Python correctement afin que les gens puissent mieux comprendre votre code et être plus aigle pour vous aider.


3 Réponses :


0
votes

data ["Départ"] est une liste et vous indexez-la comme c'est un dictionnaire.


0 commentaires

0
votes

Vous avez écrit l'échantillon de dictionnaire de manière confortable. Voici comment je pense qu'il a l'air: xxx

et voici comment vous pouvez imprimer duptime xxx

la partie importante vous avez manqué est d ["départ"] [0] car d ["départ"] est une liste (code>.


6 commentaires

Traceback (dernier appel en dernier): Fichier "C: /USERSERS/ALBIN/PYTHontest.py", ligne 4, dans Imprimer (Data ["Départ"] ['Produit'] ['Nom']) TypeError: Les indices de liste doivent être des entiers ou des tranches, pas STR


Je reçois toujours ce code d'erreur, quel pourrait être le problème?


@Albinkarlsson que le code d'erreur indique que vous n'avez pas réellement apporté le changement que j'ai suggéré. Il dit Data ['Départ'] ['Produit'] ['Nom'] ['Nom']] au lieu de Data ["Départ"] [0] ["STOP"] ["STOP"] [ 0] ["Département"]


D'accord, je vois! Merci beaucoup pour l'aide! Depuis que je vois que vous savez de quoi vous parlez. Que devrais-je faire s'il existe un autre produit dans le fichier JSON que j'aimerais également imprimer, par exemple le nom du produit "Länstrafik - bus 243" plus bas dans le fichier JSON, est-ce qu'il y a un moyen de faire cela?


Cela ressemble à une boucle pour boucle, comme dans pour le nom de produit dans les données ["Produit"]:


Hein? Je suis assez nouveau à cela, donc je ne suis pas sûr de ce que vous entendiez par là. Que devrais-je remplacer le nom de produit et que dois-je remplacer le produit?



0
votes

Comme Kyle dit dans la réponse précédente, Data ["Départ"] Code> est une liste, mais vous essayez de l'utiliser comme un dictionnaire. Il y a 2 solutions possibles.

  1. Changer Data ["Départ"] ["STOPS"] ["STOP"] ["STOP"] CODE> ETC pour DATA ["Départ"] [0] ["STOPS"] ["Stop"] code> etc. P> li>

  2. Modifiez le fichier JSON pour faire du départ dans un dictionnaire, ce qui vous permettrait de conserver votre code d'origine. Cela ferait l'apparence de la finale JSON SELPTET: P> LI> OL>

    "Departure" : {
      "Product" : {
        "name" : "Länstrafik - Buss 201",
        "num" : "201",
        "catCode" : "7",
        "catOutS" : "BLT",
        "catOutL" : "Länstrafik - Buss",
        "operatorCode" : "254",
        "operator" : "JLT",
        "operatorUrl" : "http://www.jlt.se"
      },
      "Stops" : {
        "name" : "Gislaved Lundåkerskolan",
        "id" : "740040260",
        "extId" : "740040260",
        "routeIdx" : 12,
        "lon" : 13.530096,
        "lat" : 57.298178,
        "depTime" : "20:55:00",
        "depDate" : "2019-03-05"
      }
    }
    


2 commentaires

Je reçois toujours ce code d'erreur: Traceback (appel le plus récent): Fichier "C: /USERSERS/ALBIN/PYTHontest.py", ligne 4, dans Imprimer (Data ["Départ"] ["Produit"] ['Nom']) TypeError: Les indices de liste doivent être des entiers ou des tranches, pas STR


Hmm, ok. Pourriez-vous peut-être me dire ce qu'il dit lorsque vous imprimez les données? Comme dans print (données)