J'ai reçu une liste lors de la saisie de l'URL suivante - http: //api.Twitter. COM / 1 / Trends / 44418.json P>
La liste contient plusieurs dictionnaires et je suis un peu confus avec la structure de la liste. J'essaie d'obtenir les valeurs associées à la touche "Nom". P>
Par exemple: P>
"Nom": "# jeterra" "Nom": "Rebecca Black" "Nom": "# Questions" P>
Je peux écrire le code moi-même, j'essaie simplement de comprendre avec conceptuellement accéder à des dictionnaires (et de leurs paires de clé / valeur) dans une liste. p>
4 Réponses :
C'est un fichier JSON, vous devez donc utiliser un analyseur JSON pour le lire. Il y a un analyseur dans Python 2.7 - Just Si vous ne vous souciez vraiment pas d'où dans la structure Les touches code> nom code> sont, vous pouvez recueillir dans l'arbre à la recherche d'eux ( L'expression régulière sera beaucoup de douleur, cependant, en raison de la nécessité d'inclure des caractères échappés dans une correspondance. P> Importer JSON code>. Avec cette structure, vous pouvez ensuite le manipuler de Python. p>
si clé == "Nom" code " >), ou peut-être utiliser une expression régulière. p>
L'idée d'utiliser une expression régulière me donne un mal de tête en pensant!
Eh bien, pour un début, ce lien vous donne JSON, vous aurez donc besoin de le désérialiser avec la bibliothèque JSON code> JSON:
names = [item['name'] for item in data]
La liste des dictionnaires contenant les noms ne figure pas dans la racine des données, elles sont dans [0] ['Tendances'] Code>
La première chose que je ferais lorsque vous travaillez avec une grosse morceau de JSON, est d'essayer de l'obtenir dans un format plus lisible. Cet outil de mise en forme JSON en ligne devrait faire le travail.
Voici un code qui obtiendra tous les noms de tendance: ou vous pouvez tout faire en une ligne: p> Les deux résultent: p>
#throwagrenade
Rebecca Black
Eric Abidal
#questionsihate
#juniordoctors
Smiley Culture
Lily Allen
Wes Brown
Pandev
Ray Wilkins
Merci! Une bonne réponse, appréciez également le matériel de lecture supplémentaire.
Je recommanderais également le nouveau Plongée dans Python 3 - Les dictionnaires et les listes sont mentionnés dans la section Chapitre 2. DataTypes natifs .
names = [u'#throwagrenade', u'Rebecca Black', u'#questionsihate', u'#thingsthatdontgotogether', u'Eric Abidal', u'Smiley Culture', u'Ray Wilkins', u'Wes Brown', u'Twenty Twelve', u'Marseille']
Juste une note, Twitter utilise une API V1.1 maintenant qui nécessite une authentification. Vous pouvez en savoir plus sur l'accès aux Trends ici .