Задать вопрос
  • Как сделать Telegram Bot, который выдаёт готовый Excel-файл?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Судя по постановке вопроса вам надо к фрилансерам, сами не потянете, ведь нужно "всего лишь" научиться программировать, выбрать любую библиотеку для работы с API, реализовать необходимую функциональность, вызывать её из бота. Элементарно. Хорошо, что для этого не придётся вас сначала учить читать и писать.
    Вот сейчас все соберёмся и начнем вас с нуля обучать всему этому индивидуально и бесплатно. Вы как себе это предствляете?
    Ответ написан
    Комментировать
  • Как проверить запущен ли сервер или нет по его IP адресу на Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Обычно доступность и работоспособность сервера проверяют подключаясь к нему и делая тестовый запрос. В некоторых API для этого есть спецальные точки входа, которые диагностируют и вовзвращают статус работоспособности сервера. Если это веб-сервер, то нужно лишь сделать get-запрос к такому методу. Если это ваш сервер, то вы можете сами реализовать такой метод, если чужой и у него нет такого метода, то можете проверять факт наличия сервера по возможнсти подключиться к порту, на котором он поднят.
    Сделать это можно и без вского питона из командой строки, например с помощью
    telnet <ip> <port>.
    Выдаст ошибку, если подключение не удалось. Как подключиться к порту из питона вам уже показали в соседнем ответе, но, думаю, если поискать, то найдётся пачка готовых библиотек для того же самого.
    Ответ написан
    Комментировать
  • Бесплатный python хостинг?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Использование для своих корыстных не учебных целей сервисы вроде https://replit.com/ - это своего рода пробежка по граблям и нецелевое недобросовестное использование хорошего сервиса. Даже не буду вам рассказывать способы, которыми можно эксплуатировать уязвимости таких сервисов и преодолевать их ограничения. Считаю это неэтичным. Да и полно таких инструкций в сети, ищите сами, если хотите.

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

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

    Для таких задач как ваша надо брать VDS. Подойдёт самая дешевая баксов за 5. А ещё у таких VDS есть бесплатный пробный период. Обычно это сутки, но я сталкивался и с недельными интервалами. Вот поищите https://poiskvps.ru/
    Там они не бесплантые, но есть тарифы с бесплатными пробными периодами. Однако, повторюсь, скорее всего не хостинг плохой, а ваш код косой.
    Ответ написан
    Комментировать
  • Как отсортировать многоуровневый словарь с помощью sorted()?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    # j = {...}
    {
      k: {
         **v, 
         'protocols': {
           kk:vv
           for kk, vv in 
           sorted(
             v['protocols'].items(),
             key=lambda kv2: kv2[1],
             reverse=True
           )
         }
      } 
      for k, v in 
      sorted(
        j['10.10.100.100'].items(), 
        key=lambda kv: kv[1]['count'], 
        reverse=True
      )
    }

    Но вы лучше не делайте таким нечитабельным однострочником. Соберите заново нужные словари в обычных классических циклах, иначе такой код нельзя будет поддерживать норамльно.
    Тут смысл в том, что у sorted есть необязательный аргумент, куда можно передать функцию извлечения ключа сортировки. Перебираете сортируемые словари парами (ключ-значение) в нужном порядке и собираете в новые словари.
    Ответ написан
    Комментировать
  • В чем проблема если Telegram Bot API через время зацикливается на последний функции?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Не надо так писать код.
    Вы используете страусиную политику для борьбы с ошибками.
    Вместо того. чтобы решать проблемы вы фактически закрываете глаза и повторяете неудачные попытки.
    Разбираться надо с каждой ошибкой. Нужно понять почему она происходит и решать причину проблемы. Нельзя использовать глобальный перехват всех исключений, это только усложнит ситуацию, поскольку проблема никуда не денется. просто частично будет скрыта, частично завуалирована. У вас под одну гребёнку попадают и внешние объективные проблемы, на которые нужно реагировать штатно, например это дисконнекты. И точно также вы игнорируете свои ошибки в коде, просто "заметая их под ковёр".
    Когда "под ковром" накапливается гора проблем, о которые начинаешь спотыкаться, разгребать их становится куда сложнее.

    Убирайте все неселективные try-except'ы и гуглите как правильно решать проблему 502 ошибки при работе с этой библиотекой. Возможно, например, вас просто игнорит серврер из-за слишком частых обращений, или у вас проблема с сетью, которую надо диагностировать и решать вне этого кода.
    Ответ написан
  • Как сделать выбор папки в скрипте?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    from tkinter import filedialog
    from tkinter import *
    root = Tk()
    root.withdraw()
    folder_selected = filedialog.askdirectory()
    Ответ написан
    Комментировать
  • По какой причине не работает метод fethmany в данном примере?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Потому, что нет такого метода. fetch же
    Ответ написан
    Комментировать
  • Почему цикл if внутри цикла for который находится в цикле while не работает?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    С чего вы взяли что у вас там что-то не работает?
    Во-первых:
    Почему цикл if внутри цикла for который находится в цикле while не работает?

    if - это не цикл.
    Во-вторых, в ытам накосячили с отступами.
    В-третьих, в таком спагетти коде не мудрено наделать ошибок, а у вас еще и break встречается то и дело. Нарисуйте блок-схему вашего алгоритма, тогда станет понятнее. А сейчас этот код вообще не читаем, отчего просто бесполезен и должен быть удален и переписан заново.
    Попробуйте разбить весь этот код на функции. Функуии должны быть короткие, читабельные и "чистые" (то есть зависеть только от аргументов, а не от внешних и глобальных факторов)
    Ответ написан
    8 комментариев
  • Как получить все записи в отдельные столбцы с группировкой по ключу?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Транспонирование таблиц в SQL не предусмотрено в большинстве БД.
    Если набор параметров динамический, то так не получится, потому что не ясно сколько получится столбцов в итоге, а динамически их делать нельзя.
    Можно собрать JSON с атрибутами, но это тоже такое себе.
    Обычно такое транспонирование делают в коде на бэке, а не в SQL.
    Между тем вы не написали даже какая у вас БД и на чем делаете бэкенд.

    На постгресе оптимально было бы сделать джойн, группировку, а при агрегации собирать массив key-value, или JSON, тогда у вас будет два столбца: id, params. Второй столбец будет содержать json'ы.

    Ещё один способ можно применить при более-менее статичном наборе возможных параметров. Отдельным запросом получаете все возможные уникальные имена параметров в алфавитном порядке и в том же порядке джойните слева (left join) соответствующие значения. При агрегации вы просто собираете csv-строку с строковыми значениями параметров, а для тех параметров, которых нет, будет пустая строка или null.
    Можно собирать не строку с разделителями, а массив строк, или json-список.
    Ответ написан
  • Есть ли апи которые работают на подобии https://www.geonames.org/?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Полно таких сервисов. Вот от яндекса есть: https://yandex.ru/dev/maps/jsapi/doc/2.1/ref/refer...
    Ответ написан
    Комментировать
  • Какой есть легкий IDE для Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Смотрите в сторону VSCode. Он сильно легче по требуемым ресурсам, чем PyCharm,
    Еесть ещё встроенный Idle, но я бы не называл это громким словом IDE, хотя формально оно им является.
    Ответ написан
    Комментировать
  • Существуют ли API для получения строящихся объектов?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    В OSM есть соответствующий тег: landuse=construction.
    Запрашивать объекты с таким тегом можно, например, через Overpass API.
    Но тут вопрос в качестве разметки OSM интересующей вас территории, а так же в актуальности этих данных. Разметка осуществляется волонтёрами комьюнити, поэтому никто не ручается относительно точности и актуальности данных.
    Можно ещё посмотреть в сторону кадастровых карт, но боюсь, что там тоже не всё так быстро обновляется. Однако API у них тоже есть. Тут я не специалист.
    Ответ написан
    5 комментариев
  • Как сделать запрос в sqlite?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    self.cursor.execute("SELECT * FROM table1 WHERE colum1 LIKE ?", (f'%{age}%',)).fetchmany(1)
    Ответ написан
    1 комментарий
  • Как хранить информацию о пользователях телеграмм бота?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Пользуйтесь MongoDB.
    Датакласс свой сериализуйте не пиклом, а в json и его уже прямо в монгу сохраняйте.
    Будет и быстро и просто.
    Ответ написан
  • Как понять где +, а где -?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Обычно плюс внутри. а минус снаружи, но бывают исключения. Посмотрите на блоке питания. обычно указано, но можно и проверить мультиметром.
    На плате можно определять полярность по электролитическим конденсаторам, но обычно видно как стоял разъём, редко его можно припаять двумя способами. Если можно, то ваших фотографий не достаточно.
    В любом случае, если вам не очевидно как определить полярность, то лучше не лезьте и отнесите в сервис. Бе опыта можно накосячить очень многими способами и помимо перепутывания полярности. А токи там приличные, и ноут спалите, и пожар можете устроить.
    Ответ написан
    Комментировать
  • Как выключить вывод на экран запросов к fastAPI серверу в python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Изменить конфигурацию логирования. Завести отдельный хендлер для логов FastAPI и направить его либо в отдельный файл с циклической ротацией, либо вообще в null.
    Чтобы ответить подробнее, нужно видеть структуру вашего проекта и конфиг логирования. А также понимать откуда конкретно эти логи эммитятся.
    Ответ написан
    Комментировать
  • Ошибки в json python?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Проще всего опробовать загрузить такой битый файл кабудто это yaml. Любой Json-файл будет валидным yaml-файлом, но у формата yaml гораздо более гибкий парсер, менее требовательный к синтаксису.
    wrong_json = '{"name":"Максимальная дальность","unit":cH,"value":"invalid_key"}'
    print(yaml.load(wrong_json, yaml.BaseLoader))

    Загрузит нормально, но нужно проверять на реальных данных, могут возникнуть неожиданные побочные эффекты.
    Ответ написан
  • Как расчитать какие пиксиле что попадают в линию градуса?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Вы хотя бы перечитайте эту мешанину опечаток без знаков препинания. Как вас вообще понять можно? Чего вы хотите? Вы бы хоть в пэинте нарисовали чего вам надо, или на бумажке и сфотографировали.
    Поток спутанного сознания какой-то.

    Тангенс. Прочитайте что такое тангенс.
    Ответ написан
    2 комментария
  • Вывод потока данных на новую строку каждую минуту?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Вам следует пойти к фрилансерам с этой задачей, поскольку ваш вопрос - это задача, а не вопрос.
    Вы не предложили своих методов решения, не показали что именно у вас не получилось в самостоятельном решении, вы просто поставили задачу, а этот ресурс не для этого.
    Вы даже не показали своих неудачных попыток поиска решения своей задачи, чтобы вам указали где вы ошибаетесь. Вы просто пришли сюда за готовым ответом, а нужно сперва идти в поисковик.

    Теперь по существу.
    1. Вы можете воспользоваться API и документацией, где написано как такое делать.
    2. Вы можете писать температуру в CSV-файл, а потом загружать его в таблицу по необходимости. Этот вариант проще в реализации и его можно реализовать вне зависимости от гугл апи.
    3. Промежуточный вариант - обойтись без гугла, писать температуры в БД или в тот же CSV-файл, а по необходимости отдельным скриптом конвертировать данные помеая их на лист шаблонного excel-документа. Выгружать его в гугл-драйв можно также отдельным скриптом.
    Ответ написан
  • Как сделать так чтобы стейт отвечающий за регистрацию не зацикливался?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Во-первых, у вас второй обработчик состояния имеет то же имя, что и первый:
    @bot.on.message(state=SuperStates.CONFIDENT_STATE)  # StateRule(SuperStates.AWKWARD_STATE)
    async def awkward_handler(message: Message):

    Во-вторых, у вас код останавливается на этом состсоянии. Сделайте еще одно и переходите в него, там можете реагировать и на другие команды.
    Ответ написан
    Комментировать