TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #65 · 8 апр.

Небольшой трик с регулярными выражениями который редко вижу в чужом коде. Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста. >>> text = ''' >>> Alex:8999123456 >>> Mike:+799987654 >>> Oleg:+344456789 >>> ''' Соответственно, для выделения нужных элементов будем использовать группы. Получится такой паттерн: (\w+):([\d+]+) Как мы будем формировать словарь из найденных групп? >>> import re >>> results = [] >>> for match in re.finditer(r"(\w+):([\d+]+)", text): >>> results.append({ >>> "name": match.group(1), >>> "phone": match.group(2) >>> }) >>> print(results) [{'name': 'Alex', 'phone': '8999123456'}, ...] Можно немного сократить запись используя zip >>> results = [] >>> for match in re.finditer(r"(\w+):([\d+]+)", text): >>> results.append(dict(zip(['name', 'phone'], match.groups()))) Но есть способ лучше! Это именованные группы в regex. Можно в паттерне указать имя группы и результат сразу забрать в виде словаря. >>> for match in re.finditer(r"(?P<name>\w+):(?P<phone>[\d+]+)", text): >>> results.append(match.groupdict()) То есть всё что я сделал, это добавил в начале группы (внутри сбокочек) такую запись: (?P<group-name>...) Теперь найденная группа имеет имя и можно обратиться к ней как к элементу списка >>> name = match['name'] Либо забрать сразу весь словарь методом groupdict() >>> match.groupdict() #tricks#regex

Резултати

Пронајдени 3 слични објави

Пребарај: #yatube

当前筛选 #yatube清除筛选
Luckydonalds Bots: Development/Status

@luckydonaldsbots · Post #157 · 30.08.2018 г., 22:54

Improved @YATubeBot's format selection to download the optimal quality settings to fit telegram's file limit of 50mb for video and songs. The audio is always loaded in highest quality so both the merged video file and the mp3 version benefits. Also fixed being able to queue more than one video at a time unintentionally. This should make the bot far more stable and faster. #YATube#update

Luckydonalds Bots: Development/Status

@luckydonaldsbots · Post #166 · 25.11.2018 г., 14:47

Updated @YATubeBot to be more clear of errors related to upload size. Will now handle file size related upload errors more transparent, telling you exactly what's going on, instead of just stopping sending any updates after "Uploading...". Now it will check file size before uploading, and also handle rare errors raised (in an unspecified way) by telegram. Technical background: The telegram API returns a HTML error message instead of the usual json response, which of course isn't mentioned anywere in the API documentation. This broke pytgbot, the library used to interact with the API. The package was fixed to be able to handle that. Now also provides the file size of the file to upload in an easy accessable way, so that the upload size can be checked before uploading. #update#YATube#pytgbot#TechnicalDetails

Luckydonalds Bots: Development/Status

@luckydonaldsbots · Post #161 · 21.10.2018 г., 08:02

Downtime yesterday TL;DR: After a restart, not all services got back online. Turns out, when I refreshed my docker-machine certificates, which it uses to securely talk to my remote server, it had to restart docker. Those certificates work for 3 years and have to be recreated if they expire. (Wow, I'm working with telegram bots for a while now, huh?) Somehow some services (e.g. @YATubeBot, @ForwardWhitelistBot) didn't restart, and the @StickerTagBot even reverted to a old version from last year. Anyway I redeployed the correct version. If something else isn't running how it used to, please contact me personally @luckydonald. #downtime#TechnicalDetails#YATube#ForwardWhitelist#StickerTag