Список API возвращает только последний элемент, а не весь список

#python #string #list #api

#python #строка #Список #API

Вопрос:

 endpoint = 'http://api.yelp.com/v3/categories' #url categories 
headers = {'Authorization': 'bearer %s'% api_key} #making it bearer, not changing it throughout 

response3 = requests.get(url = endpoint, headers = headers)
business_data2 = response3.json()

for item in business_data2['categories']:
     itemname = item['title']
  

Если я скажу

 itemname = item['title']
  

и я получаю только последнее в своем API

Но если я скажу

 print(item['title'])
  

Я получаю весь свой список, но только в моем цикле for.
Я пытался сделать это в терминале
и я получил только последнюю строку

Я не знаю, как это исправить, я попытался проиндексировать его, сказав [0:-1] но я также получаю только последний элемент.

Ответ №1:

Выполняя следующее, вы продолжаете перезаписывать itemname значение, поэтому видите только последнее

 for item in business_data2['categories']:
    itemname = item['title']
  

Чтобы собрать их все, используйте list

 itemnames = [] 
for item in business_data2['categories']:
    itemnames.append(item['title'])


# or directly a list comprehension
itemnames = [item['title'] for item in business_data2['categories']]

# pythonic equivalent
from operator import itemgetter
itemnames = list(map(itemgetter('title'), business_data2['categories']))