HeadlinesBriefing favicon HeadlinesBriefing.com

Разбор японского CSV файла почтовой службы

Hacker News •
×

Некоторое время назад я выпустил пакет posuto, который представляет японские почтовые кодовые данные в удобном для использования формате. Он основан на данных, опубликованных Japan Post, которые известны тем, что широко используются, но сложно обрабатывать. Я впервые стал осведомлен о почтовых данных, когда ввел свой почтовый индекс в онлайн-форму и он автоматически заполнился с адресом "XXX-borough (except the following buildings)". У меня не было ни представления, что означает эта часть в скобках, поэтому я поискал общее распространенное источник почтовых данных, нашел CSV файл и обнаружил проблему. Оказывается, CSV файл содержит примечания в скобках для любого читателя CSV файла и делает ссылку на порядок строк. Это вызывает проблемы. Данные в основном полезны по одной строке за раз, где примечания в скобках бессмысленны. Поскольку CSV является форматом, разделяемым полями, нет необходимости в скобках - вы могли бы просто добавить поле примечаний. Это всего лишь одна из многих проблем с ken_all.csv. Вы можете регулярно найти людей, жалующихся на это в Twitter, и даже временно существовал блог, который просто собирал сообщения со всего мира о этом. Одна особенно интересная твиттерная записка описывает людей, которые ожидают, что компьютеры подчинятся человеческой воле, и которые наказываются в аду вечно парсят ken_all.csv. README файла объясняет, что строки с чрезвычайно длинными полями будут разбиты на несколько строк. Конкретно, если имя района превышает 38 символов, или если поле произношения полукатаканы превышает 76 символов, строка будет разбита на две строки. Чрезвычайно длинное поле района продолжится, а все другие поля будут продублированы. Также следует отметить, что хотя лимиты длины указаны, место, где вставляются разрывы строк в длинных строках, похоже случайным, происходящее не в пределе символов и не на обычных границах слов. Стоит отметить, что не все проблемы с CSV являются наследственно техническими; почтовые индексы всегда сложны. Почтовый индекс с наибольшим количеством строк в CSV - потрясающие 66 - это 〒452-0961, который относится к району Haruhi в городе Kiyosu в предфектуре Aichi. Это имеет столько строк, потому что каждый район получает отдельную строку. В противоположность этому, самая длинная продолженная строка, используя правила разбиения строк выше, это запись для 〒602-8368 или 〒602-8374, обе с восьмью строками. Обе находятся в одном из нескольких районов Киото, которые используют уникальную, удивительную систему адресации, основанную на пересечениях. Для многих районов существуют «универсальные» почтовые индексы, где район указывается как "except the following", и единственная вещь, которую можно сделать, это найти эту точную строку и исключить ее. Существует разнообразие похожих строк, и сложно быть уверенным, что я поймал их все. Примером другого комментария является 一円. Обычно это означало бы "один иена", но это также означает "окружающая территория", и это примечание в CSV, которое должно быть удалено из названий районов, кроме...