2016-10-21 11 views
0

Я пытаюсь получить данные от pokemon api и получить информацию оттуда. Сначала вам нужно ввести число (только сейчас работает 1). Затем формируется имя/номер покемонов и URL-адрес. но я получаю много ошибок, когдаУстанавливает JSON api с python

data = json.loads(THEURL) 
print(data['forms']['name']) 

Что я делаю неправильно?

#importception 
import requests 
import json 

#import poke api 
api_url = 'http://pokeapi.co/api/v2/' 

#welke database 
def databaseaanvragen(): 
    print('Welke database wilt u aanvragen?') 
    print('Hallo), wat wilt u doen?') 
    print('1) Pokemons') 
    print('2) Locations') 
    print('3) Moves') 
    keuze = input('Voer hier het nummer in: ') 
    if(keuze.isdigit()): 
     keuze = int(keuze) 

    if keuze == 1: 
     poke_naam = input('Voer de naam of het nummer van de Pokemon in: ') 
     poke_value = 'pokemon/' + poke_naam 
     return poke_value 

#database url en data aanvragen 
aangevraagd = api_url + databaseaanvragen() 
data = json.loads(aangevraagd) 

print(data['forms']['name']) 
+2

'json.loads' ожидает, что строка, содержащая JSON, будет расшифрована, а не URL. 'json.load' вместо этого ожидает открытого указателя файла. Короче: модуль 'json' не будет выполнять фактический HTTP-запрос для получения документа JSON, это не его работа; вам нужно это сделать самому. – deceze

ответ

1

На самом деле не похоже, что вы запрашиваете JSON api с запросом GET вообще. Вам понадобится код, который выглядит примерно так:

try: 
    r = requests.get(api_url) 
except requests.exceptions.RequestException as error: 
    print(error) 
    sys.exit(1) 
else: 
    # No Exception was raised :) 
    # Decode the JSON from the response content 
    json_data = r.json()