Поиск it компаний с аккредитацией минцифры и крупицы Big Data -5


Времени на раскачку нет - сразу к делу.

На сайте digital.gov.ru можно найти документ со списком организаций, прошедших аккредитацию минцифры.

Давайте добавим в @CryptedRobot, который всегда можно найти в телеграме, возможность проверки по ИНН или названию организации - является ли эта организация аккредитованной.

import pandas as pd
import numpy as np

df = pd.read_excel('mobi.xls')
arr = np.array(df)


def find_organizations(search_string: str) -> list:
    result = []
    for item in arr:
        if search_string.lower() in str(item).lower():
            result = [item] if not len(result) else [*result, item]
    return result

Это простая функция, которая осуществляет поиск по xls файлу, который предварительно загружен в оперативную память как np array.

Далее остается только вызвать эту функцию, передав в нее поисковую строку (ИНН или часть названия организации, которую вы хотите проверить):

na = find_organizations('7715004077')  # numpy array
(
    number,
    insert_date,
    full_name,
    egrul,
    inn,
    revision_date,
    revision_number,
    change_date,
    changes,
    status,
) = na[0]

# this is how we can destruct numpy array to separate variables

Дальше остается только отправить значения через ТГ бот апи, чтобы получить красивое сообщение:

Как обычно, надеюсь, это кому-то окажется полезным.




Комментарии (9):

  1. Surgun
    /#24772196

    Поиска на самом сайте не хватает?
    https://digital.gov.ru/opendata/7710474375-registergosaccred/table/

    • born2fish
      /#24772240 / -1

      Конечно хватает. Но телега всегда под рукой и, бывает, удобно оперативно получать информацию, не выходя из зоны комфорта - не вспоминая ссылки, не открывая браузер

      • fshp
        /#24772696

        Вы вот так запросто без браузера вспомнили ИНН?

        • regint
          /#24772856

          Есть ещё один отличный бот для поиска организаций))) это не сарказм, давно им пользуюсь, очень удобный ????

        • born2fish
          /#24773000 / -1

          Признаюсь, реализовать подобный поиск оказалось очень просто и быстро, при этом, он работает в оперативной памяти и совсем не требователен к ресурсам. Запомнитаь ИНН конечно никто не будет, но проверку по названию компании так же можно произвести, да и на момент подпаисания договора всегда можно шустро перепровериться на всякий случай.

          Если совсем откровенно - больше хотелось обратить внимание на детали реализации - как в несколько строчек кода организовать поиск по любой табличке excel и прикрепить к этому удобный UI.

  2. MechanicusJr
    /#24772294 / +1

    А зачем? если сегодня эта аккредитация есть, завтра нет?

    • aaaopy
      /#24772982 / +1

      или "сегодня аккредитация даёт отсрочку, а завтра нет". Люди будто не запоминают уроков прошлого)

  3. born2fish
    /#24777126

    Лучше бы хоть один человек подсказал, что если сделать
    arr = np.array(df).astype('str')
    и убрать приведение к строке в цикле, то это будет работать на пол секунды быстрее

  4. born2fish
    /#24779290

    import pandas as pd
    import numpy as np
    
    df = pd.read_excel('mobi.xls')
    df.apply(lambda x: x.astype(str))
    
    def find_organizations(search_string: str) -> list:
        index = 4 if len(search_string) == 10 else 2
        return list(filter(lambda x: search_string.lower() in str(x[index]).lower(), arr))
    
    find_organizations('3906988219')

    Тот же самый поиск, который будет работать в 3(!) раза быстрее