WolfInChains
@WolfInChains

Как исправить list indices must be integers or slices, not str?

user[0]['first_name'] + " " + user[0]['last_name'] уже пробовал
if event.object.text == "онлайн":
                       members = vk.method("messages.getConversationMembers",
                                           {
                                               "peer_id": event.object.peer_id,
                                           }
                                           )['profiles']
                       useronline = members['online']
                       if useronline == 1:
                           user = vk.method("users.get",
                                           {
                                               "peer_id": event.object.peer_id,
                                           }
                                           )['response']
                           userid = user['id']
                           full_name = user['first_name'] + " " + user['last_name']
                           online = " " + f'[id{userid}|{full_name}]' + "\n"
                           vk.method("messages.send",
                                     {
                                         "chat_id": event.object.peer_id - 2000000000,
                                         "message": " Сейчас в сети: " + f'\n{online}',
                                         "random_id": random.randint(1, 2147483647)
                                     })
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
total4c
@total4c
Говнокодер
def get_members(peer_id: int):
	return vk.method("messages.getConversationMembers", {
			"peer_id": peer_id
		})


if event.object.text.lower() == "онлайн":
	members = [
		f"[id{i['id']}|{i['first_name']} {i['last_name']}]" 
		for i in get_members(event.object.peer_id)["profiles"]
		if i["online"] == 1
	]
	vk.method("messages.send", {
			"peer_id": event.obj.peer_id,
			"random_id": 0,
			"message": "Сейчас в сети: {}".format(
					"\n".join(members)
				)
		})
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Перед
if event.object.text == "онлайн":
добавьте
print(event.object.text)
может там ничего нет, или другое слово, или слово "Онлайн" c большой буквы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы