Доступ к JSON api с помощью python

#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()