М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет280/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   276   277   278   279   280   281   282   283   ...   334
Байланысты:
Изучаем Python


Глава 17 • Работа с API
Если ввести этот URL в браузере, вы увидите, что текст на странице заключен 
в фигурные скобки; это означает, что перед вами словарь. Но в ответе трудно разо-
браться без дополнительного форматирования. Обработаем URL методом 
json.
dump()
, как было сделано в проекте с землетрясениями из главы 16, чтобы нам было 
удобнее изучать возвращенную информацию:
hn_article.py
import requests
import json
# Вызов API и сохранение ответа.
url = 'https://hacker-news.firebaseio.com/v0/item/19155826.json'
r = requests.get(url)
print(f"Status code: {r.status_code}")
# Анализ структуры данных.
response_dict = r.json()
readable_file = 'data/readable_hn_data.json'
with open(readable_file, 'w') as f:
json.dump(response_dict, f, indent=4)
В этой программе все должно быть вам знакомо, потому что все эти средства ис-
пользовались в двух предшествующих главах. Ответ представляет собой словарь 
с информацией о статье с идентификатором 19155826:
readable_hn_data.json
{
"by": "jimktrains2",

"descendants": 220,
"id": 19155826,

"kids": [
19156572,
19158857,
...
],
"score": 722,
"time": 1550085414,

"title": "Nasa's Mars Rover Opportunity Concludes a 15-Year Mission",
"type": "story",

"url": "https://www.nytimes.com/.../mars-opportunity-rover-dead.html"
}
Словарь содержит ряд ключей, которые могут нам пригодиться. Ключ 
'descen-
dants'
содержит количество комментариев, полученных статьей

. Ключ 
'kids'
предоставляет идентификаторы всех комментариев, сделанных непосредственно 
в ответ на эту статью 

. У каждого из этих комментариев могут быть свои дочерние 
комментарии, так что количество потомков у статьи может быть больше количества 
дочерних комментариев. Также в данных виден заголовок обсуждаемой статьи 

и ее URL-адрес 

.


Использование API веб-приложений
389
Следующий URL возвращает простой список всех идентификаторов текущих по-
пулярных статей на сайте Hacker News:
https://hacker-news.firebaseio.com/v0/topstories.json
При помощи этого вызова можно узнать, какие статьи находятся на домашней стра-
нице, а затем сгенерировать серию вызовов API, аналогичных приведенному выше. 
Это позволит нам вывести сводку всех статей, находящихся на главной странице 
Hacker News в данный момент:


Достарыңызбен бөлісу:
1   ...   276   277   278   279   280   281   282   283   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет