Pull to refresh

Comments 16

Подскажите, это реальная задача (фриланс или внутренние нужды) или просто синтетическое задание?

Вообще это попытка потренироваться-написать для себя локальный поисковик по юридическим лицам РФ, просто не удовлетворяет то, что есть бесплатного-платного по этому направлению по России. Не удовлетворяет соотношение цена-качество, количество ошибок, их неумение решать востребованные бизнес-задачи. Но это глобальная так сказать задача. А пока получилась первая часть тренировки на "зайчиках". Был опыт публикации похожего поисковика онлайнового по Казахстану (все ЮЛ 0,3 млн) и России (не все ЮЛ, примерно 2,5млн). Но код писали другие люди.

А зачем сначала делать csv и из него SQLite, когда можно из питона сразу в SQLite?

Да, конечно, можно, но в учебно-образовательных целях так удобнее и нагляднее.

Это задача из разряда, когда можно и нужно обойтись без программирования. Достаточно воспользоваться правильным средством.

  1. Берем MSSQLSERVER, можно даже бесплатный express.

  2. Создаем БД.

  3. В БД создаем Filetable с внешним доступом и обычную таблицу, в которую поместим результат.

  4. Копируем в Filetable xml-и с данными прямо проводником Windows. С распаковкой из zip-a. 2019 MSSQLSERVER умеет распаковывать zip, но зачем?

  5. Выполняем запрос (тут мог бы быть текст запроса, если бы вы привели структуру исходного xml. Впрочем, аналогичные задачи показывают, что это примерно 10 строк в среднем) в SSMS.

Собственно, всё. 2 миллиона записей будут импортироваться, навскидку, по такой схеме, минуты 3, ЕМНИП. Ну, хорошо, 5, хотя скорее всего - одну.

Для реальных задач нужно пользоваться острозаточенным инструментом.

:-)

Каждую хорошую учебную задачу можно и нужно уметь решать разными путями. В данном случае программирование и Питон были обязательными для использования, обучения.

В именах файлов и каталов даты желательно использовать дату в формате yyyy-mm-dd для последующей сортировки и удобного хранения. Лучше не использовать месяц из одной цифры или импортозамещенное наименование с 'dd.mm.yyyy'.

Да, с датами в именах файлов и каталогов можно и нужно улучшать.

Было записано 1 089 044 строчек в таблицу.

Примерно половина из имеющихся данных (их там 2 174 433)

Было записано 1 089 044 строчек в таблицу.

Примерно половина из имеющихся данных (их там 2 174 433)

Ну вот видите, какое прекрасное учебное задание разобраться, почему не удалось все записать, где кроется ошибка, как ее решить правильно.

Сорри, все норм, тоже 2 174 433 получил. Сейчас проверю на двойников.

Как считали, дайте, плиз код, пока у меня получается 2 174 423. 10 строчек не достает, ищу. На двойники не проверяли?

Привет. Задание Можно доделать:

Консоль sqlite3 импортирует CSV.

Стоит не клеить CSV а по-файлово выгружать в базу и отслеживать вывод ошибок. Изучение отслеживания вывода предупреждений.

Можно сделать через Fabric - изучение модуля автоматизации процессов.

Ну и конечно же можно сделать через питоновские читалки xls/xlsx и научиться работать, например, с датафреймами пандас.

Норм пример для обучения, если у вас есть потом фидбек от ментора.

Благодарствую за предложения по развитию учебно-велосипедного проекта. Подумаем, что и как можно сделать. Пока основная цель - решить все текущие ошибки, потренироваться с парсингом других открытых и общедоступных баз ФНС, Росстата. Сделать MVP с GUI и поиском.

Sign up to leave a comment.

Articles