Задать вопрос
@35000sobak

Как правильно выполнить срез в ссылке?

ref_id = int(message.text[7:]) #получаем id
Вот таким способом получаю id из ссылки вида:
https://t.me/test_bot?start=139513584
и на выходе получаю ошибку:
ValueError: invalid literal for int() with base 10: ''

Почему так?
  • Вопрос задан
  • 96 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Решения вопроса 1
@SirotaKazansky
System Analyst
У Вас значение message.text[7:] равно "/t.me/test_bot?start=139513584" - как Вам Python из этого тип int соберёт?
Вам что на выходе получить нужно?

Если Вам число на конце нужно, причем оно всегда такой длины, то нужно использовать отрицательные значения в срезе
text="https://t.me/test_bot?start=139513584"
ref_id = int(text[-9:])

Если Вам вытащить то что после start равно, вдруг там другая длина или вообще буквы можете попробовать split
text="https://t.me/test_bot?start=139513584"
text.split("?start=")
print (text.split("?start=")[1])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы