Как стать автором
Обновить

Почему мой любимый API — это файл zip на сайте Европейского центрального банка

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров31K
Всего голосов 81: ↑67 и ↓14+76
Комментарии27

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

Я не специалист, но мне кажется все это можно "относительно легко" автоматизировать с помощью Google таблиц и получить вполне себе онлайн решение.

Или с помощью экселя. Кто не делал автоматическое подтягивание курса доллара с сайта цб?

для меня pandas и есть своего рода excel

Каким был максимальный курс доллара к евро?

Результат: 2000-10-26.


2000-10-26 — это курс доллара? Агащазблин.

А теперь — что на самом деле было написано:

When was the Dollar highest against the Euro?


Как говорится, найдите три отличия.

Исправил

НЛО прилетело и опубликовало эту надпись здесь

Вы написали раньше и перевели корректнее. Только эта набрала 36, а ваша всего 7 (сейчас добавлю свои +2). Что бы там ни говорили, кликбейтный заголовок решает.

Легко. Вот первая.

Оригинал:

The -s flag just removes some noise from standard error.

Здесь:

Флаг -s просто удаляет шум из стандартной ошибки.

Там:

Флаг -s для того, чтобы не показывать индикатор выполнения или сообщения об ошибках.

Кто из этих переводчиков знает, о чём пишет?

НЛО прилетело и опубликовало эту надпись здесь

Этот


Она может выводить таблицы в markdown!

Тот


Он может выводить таблицы уценок!

Оригинал


It can output markdown tables!

И так весь перевод. Не знаю, кто из них лучше знает предметную область, но первый фрагмент — литературный перевод, второй — огрызок Google Translate'а (или ChatGPT, или что там сейчас в моде?)

НЛО прилетело и опубликовало эту надпись здесь

В целом, если размер всего датасета таков, что он может уместится в полмегабайта в zip архиве, то, кажется, есть просто безграничное множество классных вариантов раздать эти данные.
Была б задача раздать историю изменения курса с точностью до каждого тика межбанка, и все вот это

>Например, нам не нужно выполнять следующие задачи: договариваться о доступе (например, платя деньги или общаясь с поставщиком); сохранять адрес электронной почты/название компании/должность в чью-то базу лидов, проверять, не израсходовали ли мы лимит доступа; выполнять аутентификацию (часто это само по себе становится объёмным сайд-квестом), читать документацию по API или решать проблемы более серьёзные, чем простое форматирование.

вдруг становится неожиданно хорошей идеей, ибо по другому оно просто работать не будет, увы

в большинстве баз данных SQL нет операции melt

Зато есть UNPIVOT

И даже если его нет (хотя сложно себе такое представить), то то же самое элементарно пишется на case when и group by.

ну видимо тут очередной специалист по данным без знания SQL

Ну давайте сравним, раз их, перевода, два:

1) Флаг -s просто удаляет шум из стандартной ошибки
2) Флаг -s для того, чтобы не показывать индикатор выполнения или сообщения об ошибках

Какой из переводов более гуглтранслейтный?

Второй из доки curl утащен, как подсказывает автор парой комментариев выше

-s, --silent

Silent or quiet mode. Do not show progress meter or error messages. Makes Curl mute. It still outputs the data you ask for, potentially even to the terminal/stdout unless you redirect it.

Use -S, --show-error in addition to this option to disable progress meter but still show error messages.

Providing -s, --silent multiple times has no extra effect. Disable it again with --no-silent.

НЛО прилетело и опубликовало эту надпись здесь

А теперь давайте посмотрим на другой фрагмент:
Этот


Данные имеют «широкий» формат — столбец Date, а затем дополнительный столбец для каждой валюты.

Тот


Он имеет "широкий" формат для столбца Date, а затем дополнительный столбец для каждой валюты.

Что в оригинале:


It's in "wide" format — a Date column, and then an extra column for every currency.

А разве gunzip умеет распаковывать .zip, а не только .gz?

Как ни странно, оказывается, да:

$ file eurofxref-hist.zip
eurofxref-hist.zip: Zip archive data, at least v2.0 to extract, compression method=deflate
$ gunzip eurofxref-hist.zip
gzip: eurofxref-hist.zip: unknown suffix -- ignored
$ cat eurofxref-hist.zip | gunzip | head -c1
Date,USD,J

Более того, если переименовать файл в *.gz, то gunzip его тоже принимает!

$ mv eurofxref-hist.zip eurofxref-hist.csv.gz
$ gunzip eurofxref-hist.csv.gz
$ file eurofxref-hist.csv
eurofxref-hist.csv: CSV text

Подытожу: для того, чтобы получить и обработать данные курса валют нужно знать синтаксис десятка разнородных программ. А еще делать это нужно в примитивной неудобной командной строке, которая об этих программах и об их типах данных ничего не знает и никак вам не поможет.

Вам не кажется, что индустрия свернула куда-то не туда? Что компьютеры не должны быть настолько сложными? Нет повода гордиться этим лоскутным одеялом, небрежно сшитым на коленке.

У вас неверный итог получился.

для того, чтобы получить и обработать данные курса валют нужно можно знать синтаксис десятка разнородных программ обойтись парой инструментов, которые найдутся на любой системе. А еще делать это нужно можно в примитивной неудобной интерактивной командной строке на коленке, если нужен быстрый ответ на запрос, а не полноценная разработка.

Все тянут этот файлик к себе и кладут в свою структуру. И работают уже потом с ней. Никто напрямую не работает с этим файликом, хотя при желании можно, что и продемонстрировано в статье

Тут решение с хранением и получением информации выглядит довольно изящно. Есть информация упакованная в zip. Можно скачать файл, распаковать, импортировать в тот же excel и мышкой построить любые графики. А можно как автор сделать. А можно в питоне. Это всяко лучше, чем открывать сайт, дизайн которого постоянно меняется, тыркать всякие менюшки и потом копировать данные со страницы, потому что нормальный экспорт не предусмотрен. И сайт браузером 15-летней давности не открыть. А файл можно получить на системе 25-летней давности)

Ну это же натуральная магия! У каждого инструмента (bash, gnuplot, sql) свой птичий язык! It's unix way. С 70х годов изобретают графические интерфейсы, но командная строка не исчезла.
Когда ищу ответ, то предпочитаю рецепты с командной строкой, т.к. там одна команда как правило заменяет 20 картинок. А т.к. графические интерфейсы меняются, то в новых системах проще выполнить рецепт с командной строкой.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории