Вы находитесь на странице: 1из 5

Упражнение MAPQuest:

1. Перешли на сайт: https://developer.mapquest.com/ .


2. Зарегистрировались.
3. Получили ключ потребителя.
4. Скопировали ключ в блокнот.

Создадим новый файл под именем 08_parse-json1.py

Создание переменной для построения URL

main_api = "https://www.mapquestapi.com/directions/v2/route?"
orig = "Washington"
dest = "Baltimaore"
key = "your_api_key"

Вместо “your api key” вставим свой заранее скопированный ключ

Создадим переменную для URL

url = main_api + urllib.parse. urlencode ({"key": key, "from": orig, "to": dest})

создав переменную json_data . Переменная


использует метод get модуля запросов и указывает JSON в качестве
запрошенного формата. Оператор print используется для проверки успешности
запроса.
Добавим переменную json_data и оператор print в примере 3 в
свой скрипт 08_json-parse1.py .
Создание переменной запроса JSON

json_data = reports.get (url) .json ()


print (json_data)
Запускаем программу и видим

========== RESTART: /home/user/08_parse-json1.py ==========


{'route': {'distance': 38.089, {'route': { 'distance': 38.089, 'hasHighway': True, ha
sUnpaved: False, hasAccessRestriction: False, 'options': {'mustAvoidLinkIds': [], 'ma
xWalkingDistance': -1, 'manmaps': 'true' , 'urbanAvoidFactor': -1, 'stateBoundaryDisp
lay': True, 'cyclingRoadFactor': 1, 'routeType': 'FASTEST', 'countryBoundaryDisplay':
True,'нообразивший стиль: 2, 'highwayEfficiency': 22, 'narrativeType': 'text', 'route
Number': 0, 'tryAvoidLinkIds': [], 'generalize': -1, 'returnLinkDirections': False, '
doReverseGeocode': True, 'avoTripIds': [], 'timeType ': 0,' sideOfStreetDisplay ': Tr
ue,' filterZoneFactor ': -1,'alkingSpeed': -1, 'useTraffic': False, 'unit': 'M', 'tr

[вывод опущен]

>>>

Добавим пользовательский ввод

while True:

orig = input("Starting Location: ")

dest = input("Destination: ")

url = main_api + urllib.parse.urlencode({"key": key, "from":orig, "to":dest})

print("URL: " + (url))

json_data = requests.get(url).json()

json_status = json_data["info"]["statuscode"]

if json_status == 0:

print("API Status: " + str(json_status) + " = A successful route call.\n")

Добавим к нашей программе расчёт дальности в КМ, количество


требующегося горючего в Л. Так же добавим пошаговый маршрут.

import urllib.parse
import requests
main_api = "https://www.mapquestapi.com/directions/v2/route?"
key = "r96GTWuN1h78Rth4sS7QMmPLn95Vy3np"
while True:
orig = input("Начало: ")
if orig=="quet" or orig=="q":
break
dest = input("Конец: ")
if dest=="quet" or dest=="q":
break
url = main_api + urllib.parse.urlencode({"key": key, "from": orig, "to": dest})
json_data = requests.get(url).json()
print("URL: " + (url))
json_data = requests.get(url).json()
json_status = json_data["info"]["statuscode"]

if json_status == 0:
print("API статус: " + str(json_status) + " = A successful route call.\n")
print("Путь из города "+(orig)+" в город "+(dest))
print("Длина пути: " + (json_data["route"]["formattedTime"]))
print("Километры: "+str((json_data['route']['distance'])*1.61))
print("Использоввано топлива (литр): " + str((json_data['route']['fuelUsed'])*3.78))
print("===========================================================================
=================")
for each in json_data["route"]["legs"][0]["maneuvers"]:
print((each["narrative"]) + " (" + str("{:.2f}".format((each["distance"])*1.61) + " km)"))
print("===========================================================================
=================")
elif json_status == 402:
print("\n****************************************************************")
print("Status Code: " + str(json_status) + "; Invalid user inputs for one or both locations.")
print("****************************************************************\n")
else:
print("\n************************************************************************")
print("Status Code: " + str(json_status) + "; Refer to:")
print("https://developer.mapquest.com/documentation/directions-api/s..")
print("************************************************************************\n")

После запуска программы видим:


Создадим цикл для анализа данных JSON и создания таблицы.

Финальный программный код выглядит так:


Результат работы программы:

Вывод:
В данной лабораторной работе были изучены базовые функции языка
программирования Python и его возможности. Познакомились и изучили такие
дополнительные сервисы и программы как Postman, JSON Viewer и т.д. Были
освоены простейшие программные коды для создания базовых программ,
позволяющих получить общее представление о данном языке
программирования.