Telethon |client.get_participants ( 'тест') - PullRequest
0 голосов
/ 24 ноября 2018
import telethon
import sys

api_id = 
api_hash = ''


client = TelegramClient('session_name', api_id, api_hash)
client.start()


me = client.get_me()
print(me)

parti = client.get_participants('')
len(parti)
type(parti)



for x in parti:
   print(x)

Тип parti: 'telethon.helpers.TotalList' Длина parti правильная, поэтому она действительно вычеркнула нужных пользователей.Но когда дело доходит до печати, он печатает:

User(id=xxxxxxx, is_self=False, contact=False, mutual_contact=False, deleted=False, bot=False, bot_chat_history=False, bot_nochats=False, verified=False, restricted=False, min=False, bot_inline_geo=False, access_hash=3186925291802818105, first_name='vakuumtaucher', last_name=None, username=None, phone=None, photo=UserProfilePhoto(photo_id=2834571071698610090, photo_small=FileLocation(dc_id=2, volume_id=250821725, local_id=227886, secret=-1295815918865284037), photo_big=FileLocation(dc_id=2, volume_id=250821725, local_id=227888, secret=2864116761608555039)), status=UserStatusRecently(), bot_info_version=None, restriction_reason=None, bot_inline_placeholder=None, lang_code=None)
User(id=553795975, is_self=False, contact=False, mutual_contact=False, deleted=False, bot=False, bot_chat_history=False, bot_nochats=False, verified=False, restricted=False, min=False, bot_inline_geo=False, access_hash=3748681057114558961, first_name='René', last_name=None, username='Todtnauer', phone=None, photo=UserProfilePhoto(photo_id=2378535601737672619, photo_small=FileLocation(dc_id=2, volume_id=246934435, local_id=108141, secret=-2834728750137465782), photo_big=FileLocation(dc_id=2, volume_id=246934435, local_id=108143, secret=-7220306442079900232)), status=UserStatusOffline(was_online=datetime.datetime(2018, 11, 24, 10, 38, 31, tzinfo=datetime.timezone.utc)), bot_info_version=None, restriction_reason=None, bot_inline_placeholder=None, lang_code=None)

Это работает нормально, пока пользователь с не-BMP символами не всплывает, потому что тогда я получаю UnicodeEncodeError.

Как я могупросто отфильтровать user_id из печатного пользователя?(чтобы обойти UnicodeEncodeError)?

1 Ответ

0 голосов
/ 21 февраля 2019

User - это объект, и для доступа к свойству объекта вы должны сделать object.property, поэтому в вашем случае вы должны сделать следующее.

for x in parti:
   print(x.id)
...