Почему телепот места проведения не правильный? - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь создать бота, который мог бы получить название вашей улицы с помощью telpot. Я вставил местоположение в строке 22 (местоположение), и это работает. Но когда я хочу попробовать «место», это не работает. Может ли кто-нибудь помочь мне узнать название улицы (или места) моих пользователей?

import json
import time
from pprint import pprint
import telepot
from telepot.loop import MessageLoop
import telepot.namedtuple
bot = telepot.Bot(token)
lista = ["New York","Los Angeles","Miami","Toronto","Berlin","Rome","Ciao"]
seq = iter(lista)
reqloc = keyboard = {"text": "Utilizza la geolocalizzazione", "request_location": True}
keyboard = {"keyboard": [[reqloc]]+[[{"text": i} for i in pair] for pair in zip(seq)]}



def handle(msg):
    content_type, chat_type, chat_id = telepot.glance(msg)
    print(content_type, chat_type, chat_id)
    if content_type == "text":
        bot.sendMessage(chat_id, msg["text"], reply_markup=keyboard)
    if content_type == "location":
        if content_type == 'location':
      print(msg['location'])
      print(msg['location']['latitude'])
      print(msg['location']['longitude'])
      print(msg['venue']['title']]) #here is the error









MessageLoop(bot, handle).run_as_thread()
while 1:
    time.sleep(10)

Output: text private 323090362
location private 323090362
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/telepot/loop.py", line 37, in run_forever
    self._handle(msg)
  File "telegram.py", line 21, in handle
    if content_type == 'location':
KeyError: 'venue'
...