#python #json #api
#python #json #API
Вопрос:
Я пытаюсь получить доступ к данным из pokemon api и получить оттуда некоторую информацию. Сначала вам нужно ввести число (единственный вариант 1
, который работает прямо сейчас). Затем формируется имя / номер покемона и URL. но я получаю много ошибок, когда
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'])
Комментарии:
1.
json.loads
ожидает декодирования строки, содержащей JSON, а не URL.json.load
вместо этого ожидает указатель на открытый файл. Короче говоря:json
модуль не будет выполнять фактический HTTP-запрос для получения документа JSON, это не его работа; вам нужно будет сделать это самостоятельно.
Ответ №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()