#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']))