Анализатор Python, Str

#python #string

#python #строка

Вопрос:

Я хочу получить заголовок статьи из HBR, но, к сожалению, я нахожу неправильный заголовок ,

 "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36"
  

что мне делать?

Код :

 import requests

hbr_url = "https://hbr.org/service/components/list/latest/1/8?format=jsonamp;id=page.list.home"

hrb_header = {
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36"

}

hbr_data = requests.get(url=hbr_url , header = hrb_header)

hbr_json =hbr_data.json()

hrb_article =hbr_json['entry']


for title222 in hrb_article:
    hbr_title = hrb_article['title']
    print(hbr_title)
  

Ошибка:

 Traceback (most recent call last):
  File "/Users/stanleydu/PycharmProjects/untitled19/hbbs.py", line 21, in <module>
    hbr_title = hrb_article['title']
TypeError: list indices must be integers or slices, not str
  

Комментарии:

1. Прочитайте сообщение об ошибке, затем посмотрите на значение hrb_article Попробуйте использовать отладчик.

Ответ №1:

Похоже, что hbr_json['entry'] это список словарей, каждый из которых имеет 'title' ключ. Вы используете неправильную переменную внутри своего цикла. Вам нужно:

 hrb_article = hbr_json['entry']

for title222 in hrb_article:
    hbr_title = title222['title']  # <=== this is the corrected line
    print(hbr_title)
  

Это дает:

 Do You Have the Tools to Build a Great Employee Experience?
Remote Work Doesn’t Have to Mean All-Day Video Calls
4 Questions to Help Women Navigate the Second Half of Their Careers
The Case for Remote Work in Health Care
Creating More Resilient Supply Chains
Quantify Your Company’s Impact on People
A Better Approach to Fighting Chronic Diseases
How to Identify a Family-Friendly Employer
  

(Также в вашем вызове requests.get кажется, что вам нужно headers вместо header имени аргумента ключевого слова. Предположительно, это просто ошибка в вопросе, иначе в этой строке произошел бы сбой.)

Комментарии:

1. Чувак, ты лучший, Спасибо за помощь, это работает!!!