Глава 16 • Загрузка данных
изошедшим за последние 24 часа (на момент написания книги). Данные взяты
из одного потока данных Геологического управления США, доступных по адресу
https://earthquake .usgs .gov/earthquakes/feed/
.
Знакомство с данными
Открыв файл
eq_1_day_m1 .json
, вы увидите, что данные упакованы очень плотно
и плохо читаются:
{"type":"FeatureCollection","metadata":{"generated":1550361461000,...
{"type":"Feature","properties":{"mag":1.2,"place":"11km NNE of Nor...
{"type":"Feature","properties":{"mag":4.3,"place":"69km NNW of Ayn...
{"type":"Feature","properties":{"mag":3.6,"place":"126km SSE of Co...
{"type":"Feature","properties":{"mag":2.1,"place":"21km NNW of Teh...
{"type":"Feature","properties":{"mag":4,"place":"57km SSW of Kakto...
...
Формат этого файла больше предназначен для машин, нежели для людей. Но мы
видим, что файл содержит словари, а также информацию, которая нас интересует,
включая магнитуды и местоположения землетрясений.
Модуль
json
предоставляет разнообразные инструменты для анализа и обработки
данных JSON. Некоторые из этих инструментов позволяют переформатировать
файл, чтобы вам было удобнее работать с необработанными данными, прежде чем
вы начнете работать с ними на программном уровне.
Для начала загрузим данные и выведем их в формате, лучше подходящем для
чтения. Файл очень длинный, поэтому вместо того, чтобы выводить его, запишем
данные в новый файл. После этого вы сможете открыть этот файл и прокрутить
его к нужной позиции:
eq_explore_data.py import json
# Изучение структуры данных.
filename = 'data/eq_data_1_day_m1.json'
with open(filename) as f:
❶
all_eq_data = json.load(f)
❷
readable_file = 'data/readable_eq_data.json'
with open(readable_file, 'w') as f:
❸
json.dump(all_eq_data, f, indent=4)
Начнем с импортирования модуля
json
, чтобы загрузить данные из файла, а затем
сохранить весь набор данных в
all_eq_data
. Функция
json.load()
преобразует
данные в формат, с которым может работать Python: в данном случае огромный
словарь. В точке
создается файл для записи тех же данных в более удобочитае-
мый формат. Функция
json.dump()
получает объект данных JSON и объект файла
Построение карт с глобальными наборами данных: формат JSON
363 и записывает данные в этот файл
. Аргумент
indent=4
приказывает
dump()
фор-
матировать данные с отступами, соответствующими структуре данных.
Перейдите в каталог
data
и откройте файл
readable_eq_data .json
. Начальная часть
выглядит так: