API, dict et interrogations...

Liste des GroupesRevenir à fcl python 
Sujet : API, dict et interrogations...
De : zzz (at) *nospam* aol.com (Dominique)
Groupes : fr.comp.lang.python
Date : 12. Aug 2023, 10:07:04
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <ub7ej9$18ncg$1@dont-email.me>
User-Agent : Mozilla Thunderbird
Bonjour,
Je m'amuse avec les API, notamment celles de la NASA. J'ai bricolé un script essentiel : de qui est composé l'équipage des vaisseaux dans l'espace à l'instant où je vous écris :
import requests
import datetime
result=requests.get("http://api.open-notify.org/astros.json").json()
date=str(datetime.date.today()).split('-')
date[0],date[1],date[2]=date[2],date[1],date[0]
print()
print('Équipage dans l\'espace ce ', '-'.join(date))
print()
for i in range(len (result['people'])):
     print(result['people'][i]['name'], result['people'][i]['craft'])
La sortie est simple :
Équipage de l'ISS ce  12-08-2023
Équipage dans l'espace ce  12-08-2023
Sergey Prokopyev ISS
Dmitry Petelin ISS
Frank Rubio ISS
Stephen Bowen ISS
Warren Hoburg ISS
Sultan Alneyadi ISS
Andrey Fedyaev ISS
Jing Haiping Tiangong
Gui Haichow Tiangong
Zhu Yangzhu Tiangong
Bien, mais si je consulte la structure de mes données, je vois que la variable 'result' est un dict. Un simple appel de cette variable me donne ceci :
{'number': 10,
  'people': [{'name': 'Sergey Prokopyev', 'craft': 'ISS'},
   {'name': 'Dmitry Petelin', 'craft': 'ISS'},
   {'name': 'Frank Rubio', 'craft': 'ISS'},
   {'name': 'Stephen Bowen', 'craft': 'ISS'},
   {'name': 'Warren Hoburg', 'craft': 'ISS'},
   {'name': 'Sultan Alneyadi', 'craft': 'ISS'},
   {'name': 'Andrey Fedyaev', 'craft': 'ISS'},
   {'name': 'Jing Haiping', 'craft': 'Tiangong'},
   {'name': 'Gui Haichow', 'craft': 'Tiangong'},
   {'name': 'Zhu Yangzhu', 'craft': 'Tiangong'}],
  'message': 'success'}
Je retrouve certes mes petits. Mais je comprends mal la structure de dict :
print(result.keys())
dict_keys(['number', 'people', 'message'])
J'oublie number et message qui ne m'intéressent pas. Je ne retiens que people (les équipages) :
result['people']
Out[8]:
[{'name': 'Sergey Prokopyev', 'craft': 'ISS'},
  {'name': 'Dmitry Petelin', 'craft': 'ISS'},
  {'name': 'Frank Rubio', 'craft': 'ISS'},
  {'name': 'Stephen Bowen', 'craft': 'ISS'},
  {'name': 'Warren Hoburg', 'craft': 'ISS'},
  {'name': 'Sultan Alneyadi', 'craft': 'ISS'},
  {'name': 'Andrey Fedyaev', 'craft': 'ISS'},
  {'name': 'Jing Haiping', 'craft': 'Tiangong'},
  {'name': 'Gui Haichow', 'craft': 'Tiangong'},
  {'name': 'Zhu Yangzhu', 'craft': 'Tiangong'}]
type(result['people'])
Out[9]: list
Je comprends mal comment est structurée cette key. J'ai une list composée de 'name' puis d'informations concernant le membre de l'équipage suivi du vaisseau (l'ISS).
Ah si, je vois, chaque élément de 'people' est lui-même un dict :
type(result['people'][0])
Out[13]: dict
composé d'une seule key 'name' :
result['people'][0]['name']
Out[16]: 'Sergey Prokopyev'
Pour résumer, result est un dictionnaire composé de 3 clefs dont une ('people') est une liste elle-même composée de 10 dictionnaires avec deux clefs à chaque fois : 'name' et 'craft'. J'ai bien compris ?
Oui, je sais, c'est moi qui est écrit le script Python. Mais j'ai tâtonné en ligne 22 et 23 sans trop comprendre ce que j('ai écrit...
Merci pour votre regard et vos explications,
--
Dominique
Esto quod es

Date Sujet#  Auteur
12 Aug 23 * API, dict et interrogations...10Dominique
12 Aug 23 +* Re: API, dict et interrogations...2yves
12 Aug 23 i`- Re: API, dict et interrogations...1Dominique
12 Aug 23 `* Re: API, dict et interrogations...7yves
12 Aug 23  +- Re: API, dict et interrogations...1Dominique
12 Aug 23  `* Re: API, dict et interrogations...5Dominique
12 Aug 23   `* Re: API, dict et interrogations...4yves
13 Aug 23    +- Re: API, dict et interrogations...1Dominique
14 Aug 23    `* Re: API, dict et interrogations...2yves
14 Aug 23     `- Re: API, dict et interrogations...1Dominique

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal