почему происходит ошибка TypeError: 'Location' object is not subscriptable

#Библиотеки
import telebot
from telebot import types
# importing modules
from geopy.geocoders import Nominatim
#Импорт токена
from config import TOKEN

#Хуй его знает, но нужно
bot = telebot.TeleBot(TOKEN)

#Бот считывает команду start, отправляет сообщение и добавляет список
@bot.message_handler(commands=['start'])
def hello(message):
    start_marcup = types.ReplyKeyboardMarkup(resize_keyboard=True) #Создание клавиатуры для кнопок
    get_order = types.KeyboardButton('Сделать заказ?') #Создание кнопки задание
    start_marcup.add(get_order) #Добавление
    bot.send_message(message.chat.id, f'Привет {message.from_user.first_name}!?\nЭтот бот сделан для оформления заказов на доставку?\nЧтобы сдлеать заказ нажмите на кнопку ниже?', reply_markup=start_marcup)
#Наличее аддреса
Have_addres = False

#Бот выполняет что то если в тексте есть значение
@bot.message_handler(content_types=['text'])
def func(message):
    if(message.text == "Сделать заказ?"):
        if Have_addres:
            bot.send_message(message.chat.id, text="Да")
        elif Have_addres == False:
            give_addres(message)

def give_addres(message):
    # Клавиатура с кнопкой запроса локации
    keyboard = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True)
    button_geo = types.KeyboardButton(text="Отправить местоположение", request_location=True)
    keyboard.add(button_geo)
    bot.send_message(message.chat.id, 'Поделись местоположением', reply_markup=keyboard)

#Получаем широту и долготу
@bot.message_handler(content_types=['location'])
def get_location (message):
    if message.location is not None:
        location = message.location
        print(location)
        longitude = location['longitude']
        latitude = location['latitude']
        #location = latitude + ',', longitude
        #print(location)



# calling the nominatim tool
geoLoc = Nominatim(user_agent="GetLoc")

# passing the coordinates
#locname = geoLoc.reverse()


#Неприрывная работа бота
bot.polling(none_stop=True)

Так выглядит print(location):

{'longitude': (мои координаты), 'latitude': (мои координаты), 'horizontal_accuracy': None, 'live_period': None, 'heading': None, 'proximity_alert_radius': None}

Ошибка происходит когда я пытаюсь достать информацию из словаря

Текст ошибки:

Traceback (most recent call last):
  File "D:\helper bot\main.py", line 59, in <module>
    bot.polling(none_stop=True)
  File "D:\helper bot\lib\site-packages\telebot\__init__.py", line 1045, in polling
    self.__threaded_polling(non_stop=non_stop, interval=interval, timeout=timeout, long_polling_timeout=long_polling_timeout,
  File "D:\helper bot\lib\site-packages\telebot\__init__.py", line 1120, in __threaded_polling
    raise e
  File "D:\helper bot\lib\site-packages\telebot\__init__.py", line 1082, in __threaded_polling
    self.worker_pool.raise_exceptions()
  File "D:\helper bot\lib\site-packages\telebot\util.py", line 147, in raise_exceptions
    raise self.exception_info
  File "D:\helper bot\lib\site-packages\telebot\util.py", line 90, in run
    task(*args, **kwargs)
  File "D:\helper bot\lib\site-packages\telebot\__init__.py", line 6793, in _run_middlewares_and_handler
    result = handler['function'](message)
  File "D:\helper bot\main.py", line 44, in get_location
    longitude = location['longitude']
TypeError: 'Location' object is not subscriptable

Ответы (1 шт):

Автор решения: Zetial

Не знаю насчет правильности, но все же. Достал информацию из словаря другим способом и все стало ок

longitude = location.longitude
latitude = location.latitude
→ Ссылка