import requests
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QWidget
from datetime import date
class Rasp(QWidget): # Предполагаем, что у вас есть класс Ui_Form, определенный в UI.py
def __init__(self):
super(Rasp, self).__init__()
# Замените на ваш код инициализации UI из Ui_Form
self.plainTextEdit = QtWidgets.QPlainTextEdit(self)
self.plainTextEdit_2 = QtWidgets.QPlainTextEdit(self)
self.pushButton = QtWidgets.QPushButton("Поменять местами", self)
self.pushButton_2 = QtWidgets.QPushButton("Построить маршрут", self)
# ... (добавьте остальные элементы UI)
self.pushButton.clicked.connect(self.swap)
self.pushButton_2.clicked.connect(self.get_yandex_route)
def get_route(self, api_key: str, from_: str, to: str, date_: date = date.today()) -> dict:
base_url = "https://api.rasp.yandex.net/v3.0/search"
params = {
"apikey": api_key,
"from": from_,
"to": to,
"transport_types": "bus",
"date": date.today(),
"format": "json",
"lang": "ru_RU" # Установка языка ответа на русский
}
response = requests.get(base_url, params=params)
response.raise_for_status()
data = response.json()
if "segments" in data:
segments = data["segments"]
if segments: # Проверяем, что есть хотя бы один сегмент
segment = segments[0] # Берем первый сегмент
departure_station = segment.get("departure_station")
arrival_station = segment.get("arrival_station")
return {
"Маршрут": segment.get("title"),
"Точка отправки": departure_station.get("title") if departure_station else "Недоступно",
"Точка прибытия": arrival_station.get("title") if arrival_station else "Недоступно",
"Время отправки": segment.get("departure_time"),
"Время прибытия": segment.get("arrival_time"),
"stops": [stop.get("title") for stop in segment.get("stops", [])] # Проверяем наличие ключа "stops"
}
else:
return None # Ничего не найдено
def swap(self):
text1 = self.plainTextEdit.toPlainText()
text2 = self.plainTextEdit_2.toPlainText()
self.plainTextEdit.setPlainText(text2)
self.plainTextEdit_2.setPlainText(text1)
def get_yandex_route(self):
api_key = "ВАШ_API_КЛЮЧ"
start_city = self.plainTextEdit.toPlainText()
end_city = self.plainTextEdit_2.toPlainText()
route_description = self.get_route(api_key, start_city, end_city)
if route_description:
print(f"Описание маршрута: {route_description}")
else:
print("Маршрут не найден.")
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
window = Rasp()
window.show()
sys.exit(app.exec_())
Как это исправить. API в коде я заменил