Книга «Изучаем Python»



Pdf көрінісі
бет216/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   212   213   214   215   216   217   218   219   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )

УПРАЖНЕНИЯ
16-5 . Все страны: на картах, построенных в этом разделе, наша программа не смогла 
автоматически найти двухбуквенные коды примерно для 12 стран . Определите, что это 
за страны, и найдите коды в словаре COUNTRIES . Добавьте блок if-elif в get_country_code(), 
чтобы функция возвращала правильные коды для этих конкретных стран:
if country_name == 'Yemen, Rep.'
return 'ye'
elif ...


Итоги
361
Разместите этот код после цикла COUNTRIES, но перед командой return None . Когда это 
будет сделано, карта станет более полной .
16-6 . Валовый внутренний продукт: Фонд Open Knowledge Foundation предоставляет на-
бор данных с величиной валового внутреннего продукта (ВВП) по каждой стране мира
его можно загрузить по адресу http://data .okfn .org/data/core/gdp/ . Загрузите версию этого 
набора данных в формате JSON и нанесите на карту ВВП каждой страны мира за самый по-
следний год в наборе данных .
16-7 . Выберите данные самостоятельно: Всемирный банк предоставляет различные наборы 
данных, разбитые по странам . Откройте страницу http://data .worldbank .org/indicator/ и най-
дите набор данных, который покажется вам интересным . Щелкните на наборе данных
щелкните по ссылке Download Data и выберите формат CSV . Вы получите три файла CSV, 
два из которых снабжены пометкой Metadata; используйте третий файл CSV . Напишите про-
грамму для генерирования словаря; ключами словаря являются двухбуквенные коды стран 
Pygal, а значениями — выбранные вами данные из файла . Нанесите данные на диаграмму 
Worldmap и оформите карту на свое усмотрение .
16-8 . Тестирование модуля country_codes: во время разработки модуля country_codes мы 
использовали команды print для проверки работоспособности функции get_country_code() . 
Напишите нормальный тест для этой функции, используя информацию из главы 11 .
Итоги
В этой главе вы научились работать с сетевыми наборами данных. Вы узнали, как 
обрабатывать файлы CSV и JSON и как извлечь данные, на которых вы хотите со-
средоточиться. Используя реальные погодные данные, вы освоили новые возмож-
ности работы с библиотекой matplotlib, включая использование модуля datetime 
и возможность нанесения нескольких наборов данных на одну диаграмму. Вы 
узнали, как нанести данные на карту мира с использованием Pygal и как изменить 
оформление карт и диаграмм Pygal.
С накоплением опыта работы с файлами CSV и JSON вы сможете обрабатывать 
практически любые данные, которые вам потребуется проанализировать. Многие 
сетевые наборы данных могут загружаться хотя бы в одном из этих форматов. По-
сле работы с этими форматами вам также будет проще усвоить другие форматы 
данных.
В следующей главе вы напишете программы для автоматического сбора данных 
из сетевых источников, а затем создадите визуализации этих данных. Это занятие 
весьма интересное, если вы рассматриваете программирование как увлечение, 
и абсолютно необходимое, если вы занимаетесь программированием профессио-
нально.


17
Работа с API
В этой главе вы научитесь писать специализированные программы для построения 
визуализаций на основании загруженных ими данных. Ваша программа будет ис-
пользовать программный интерфейс (API) веб-приложения для автоматического 
запроса конкретной информации с сайта (вместо целых страниц). Полученная 
информация будет использоваться для построения визуализации. Так как про-
граммы, написанные по такой схеме, всегда используют самые свежие данные для 
построения визуализации, даже при быстро изменяющихся данных полученная 
диаграмма всегда будет оставаться актуальной.
Использование API веб-приложений
API веб-приложения представляет собой часть веб-сайта, предназначенную для 
взаимодействия с программами, которые используют особым образом построенные 
URL-адреса для запроса информации. Подобные запросы называются 
вызовами 
API
. Запрашиваемые данные возвращаются в удобном формате (например, JSON 
или CSV). Многие приложения, зависящие от внешних источников данных (как 
приложения, интегрирующиеся с сайтами социальных сетей), используют вызовы 
API.
Git и GitHub
Наша визуализация будет построена на базе информации с GitHub — сайта, органи-
зующего совместную работу программистов над проектами. Мы воспользуемся API 
GitHub для запроса информации о проектах Python и последующего построения 
интерактивной визуализации относительной популярности этих проектов в Pygal.
Имя GitHub (
https://github.com/
) происходит от Git — распределенной системы 
управления версиями, которая позволяет программистам совместно трудиться над 
проектами. Пользователи Git управляют своим индивидуальным вкладом в проект, 
чтобы изменения, вносимые одним человеком, не конфликтовали с изменениями, 
вносимыми другими людьми. Когда вы реализуете новую возможность в проекте, 
Git отслеживает изменения, внесенные в каждый файл. Если новый код успешно 
работает, вы 
закрепляете
внесенные изменения, и Git записывает новое состояние 
проекта. Если же вы допустили ошибку и хотите отменить внесенные изменения, 
Git позволяет легко вернуться к любому из предыдущих рабочих состояний. 


Использование API веб-приложений
363
(За дополнительной информацией об управлении версиями с использованием Git 
обращайтесь к приложению Г.) Проекты GitHub хранятся в 
репозиториях
, содер-
жащих все ресурсы, связанные с проектом: код, информацию о других участниках, 
все проблемы или отчеты об ошибках и т. д.
Если проект нравится пользователям GitHub, то пользователи могут «поставить 
звезду», чтобы продемонстрировать свою поддержку и следить за проектами, 
которые могут им пригодиться. В этой главе мы напишем программу для авто-
матической загрузки информации о проектах Python с наибольшим количеством 
звезд на GitHub, а затем построим содержательную визуализацию таких проектов.
Запрос данных с использованием вызовов API
GitHub поддерживает API (программный интерфейс) для запроса разнообразной 
информации посредством вызовов API. Чтобы понять, как выглядит вызов API, 
введите следующий адрес в адресной строке своего браузера и нажмите Enter:
https://api.github.com/search/repositories?q=language:python&sort=stars
Этот вызов возвращает количество проектов Python, размещенных на GitHub в на-
стоящее время, а также информацию о самых популярных репозиториях Python. 
Рассмотрим вызов подробнее: первая часть 
https://api.github.com/
передает за-
прос части сайта GitHub, отвечающей на вызовы API. Следующая часть, 
search/
repositories
, приказывает API провести поиск по всем репозиториям в GitHub.
Вопросительный знак после 
repositories
означает, что мы собираемся передать 
аргумент. Символ 
q
обозначает запрос (Query), а знак равенства начинает опре-
деление запроса (
q=
). Выражение 
language:python
указывает, что запрашивается 
информация только по репозиториям, для которых основным языком указан 
Python. Завершающая часть, 
&sort=stars
, сортирует проекты по количеству при-
своенных им звезд.
В следующем фрагменте приведены несколько начальных строк ответа. Вероятно, 
по виду ответа вы уже поняли, что этот URL-адрес не предназначен для обычных 
пользователей.
{
"total_count": 713062,
"incomplete_results": false,
"items": [
{
"id": 3544424,
"name": "httpie",
"full_name": "jkbrzt/httpie",
...
Как видно из второй строки вывода, на момент написания книги на GitHub было 
найдено 713 062 проектов Python. Значение 
"incomplete_results"
равно 
false

а значит, запрос был обработан успешно (информация не является неполной). Если 
бы у GitHub возникли проблемы с полной обработкой запроса API, то в этом поле 
было бы возвращено значение 
true
. Возвращаемые данные отображаются в списке 
"items"
с информацией о самых популярных проектах Python на GitHub.


364

Достарыңызбен бөлісу:
1   ...   212   213   214   215   216   217   218   219   ...   266




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

    Басты бет