2016-10-21 3 views
0

私はポケモンのAPIからデータにアクセスしてそこから情報を取得しようとしています。最初に数字を入力する必要があります(現在のところ1のオプションのみ)。ポケモンの名前/番号とURLが形成されます。しかし、多くのエラーが発生するPythonでJSON APIにアクセス

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'モジュールはJSON文書を取得するために実際のHTTPリクエストを行いません。それはその仕事ではありません。あなたはそれを自分で行う必要があります。 – 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() 
関連する問題