как я могу получить указанный c элемент в json с python - PullRequest
0 голосов
/ 02 апреля 2020

Я хочу получить доступ к указанному элементу c с помощью python, но не могу

import json
import requests

search_book = str(input("search a book: "))
request = requests.get("https://www.googleapis.com/books/v1/volumes?q=" + search_book)
request_text = request.text

data = request_text
print(data['items']['volumeInfo']['title'])

ошибка:

Traceback (самый последний вызов последнее): файл "C: / Users / ddvit / Documents / программирования / python / books / books.py", строка 9, в печатном виде (data ['items'] ['volumeInfo'] ['title']) Ошибка типа: строковые индексы должны быть целыми числами

Заранее большое спасибо:)

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Чтобы получить rseult как JSON, вам нужно либо загрузить его json.loads(request.text), либо получить напрямую с помощью request.json()

Тогда элементы - это массив, поэтому вы не можете получить доступ к информации напрямую,

  • Вы можете итерировать по нему, а затем получить заголовок

    data = request.json()
    for item in data['items']:
        title = item['volumeInfo']['title']
        print(title)
    
  • получить прямой доступ к одному

    print(data['items'][0]['volumeInfo']['title'])
    
1 голос
/ 02 апреля 2020

Вы берете необработанный текст из ответа, вместо этого используйте метод json():

import json
import requests

search_book = str(input("search a book: "))
response = requests.get("https://www.googleapis.com/books/v1/volumes?q=" + search_book)
data = response.json()
...