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

На сайте 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
    27.09.2022 20:56

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


    1. born2fish Автор
      27.09.2022 21:19
      -1

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


      1. fshp
        28.09.2022 02:49

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


        1. regint
          28.09.2022 07:56

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


        1. born2fish Автор
          28.09.2022 09:37
          -1

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

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


  1. MechanicusJr
    27.09.2022 21:45
    +1

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


    1. aaaopy
      28.09.2022 09:29
      +1

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


  1. born2fish Автор
    29.09.2022 18:08

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


  1. born2fish Автор
    30.09.2022 13:52

    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(!) раза быстрее