sto imparando a usare Python e le API (in particolare, questa API Coppa del Mondo, http://www.kimonolabs.com/worldcup/explorer)Python e JSON - TypeError indici delle liste devono essere numeri interi non str
I dati JSON è simile al seguente:
[
{
"firstName": "Nicolas Alexis Julio",
"lastName": "N'Koulou N'Doubena",
"nickname": "N. N'Koulou",
"assists": 0,
"clubId": "5AF524A1-830C-4D75-8C54-2D0BA1F9BE33",
"teamId": "DF25ABB8-37EB-4C2A-8B6C-BDA53BF5A74D",
"id": "D9AD1E6D-4253-4B88-BB78-0F43E02AF016",
"type": "Player"
},
{
"firstName": "Alexandre Dimitri",
"lastName": "Song-Billong",
"nickname": "A. Song",
"clubId": "35BCEEAF-37D3-4685-83C4-DDCA504E0653",
"teamId": "DF25ABB8-37EB-4C2A-8B6C-BDA53BF5A74D",
"id": "A84540B7-37B6-416F-8C4D-8EAD55D113D9",
"type": "Player"
},
]
Sto semplicemente cercando di stampare tutti i primi nomi in questa API. Ecco quello che ho:
import urllib2
import json
url = "http://worldcup.kimonolabs.com/api/players?apikey=xxx"
json_obj = urllib2.urlopen(url).read
readable_json = json.dumps(json_obj)
playerstuff = readable_json['firstName']
for i in playerstuff:
print i['firstName']
Ma quando l'eseguo, ottengo l'errore "... linea 8, in ... TypeError: indici delle liste devono essere interi, non Str"
ho cercò soluzioni, ma sembra che trovi domande per domande più approfondite sull'API e non ho ancora capito tutto, quindi qualsiasi aiuto o spiegazione su ciò che dovrei fare sarebbe sorprendente. Grazie!
Solo un po 'di saggezza comune di pitone - le richieste http://docs.python-requests.org/en/latest/ biblioteca è di solito un gran migliore alternativa all'utilizzo di urllib2. –
Ci guarderò, grazie! – user3718365
Al posto dell'url non riesco a leggere qualcosa del tipo: @ app.route ('/ test', methods = ['GET', 'POST']) def foo(): json_obj = request.json readable_json = json. carichi (json_obj) per i in readable_json: print i ['firstName'] se faccio lo stesso, ottengo TypeError: stringa attesa o buffer –