Вызов API JSON с использованием Python - PullRequest
0 голосов
/ 13 января 2020

Программа запросит местоположение, свяжется с веб-службой и извлечет JSON для веб-службы, проанализирует эти данные и извлечет первый идентификатор place_id из JSON. Идентификатор места - это текстовый идентификатор, который однозначно идентифицирует место, как в Картах Google. Конечные точки API

Чтобы выполнить это назначение, следует использовать эту конечную точку API, которая имеет поднабор stati c данных Google:

http://py4e-data.dr-chuck.net/json? Этот API использует тот же параметр (адрес), что и Google API. Этот API также не имеет ограничения скорости, поэтому вы можете тестировать так часто, как вам нравится. Если вы посещаете URL без параметров, вы получаете ответ «Нет адреса ...».

Я работал над этим назначением, но коды не выполняются. Я выполняю JSONDecodeError всякий раз, когда запускаю программу.

import urllib.request, urllib.parse, urllib.error
import json
adr= 'http://py4e-data.dr-chuck.net/json?'
while True:
    loca= input('Enter Location: ')
    if len(loca)<1:break

    url=adr + urllib.parse.urlencode({"address": loca})
    print('Retrieving', url)
    fha=urllib.request.urlopen(url)
    data=fha.read().decode()
    print('Retrieved', len(data))

    jsdata=json.loads(str(data))
    placeid= jsdata['results'][0]['place_id']
    print('The Place ID is: ', placeid)

1 Ответ

0 голосов
/ 13 января 2020

Похоже, ошибка в том, что при этом требуется дополнительный параметр (ключ)

Missing/incorrect key = parameter (it is an easy number to guess) ...

Редактировать: проверить документацию https://www.py4e.com/code3/geodata/README.txt

Пример 1: http://py4e-data.dr-chuck.net/json?key=42&address=Monash+University

Пример 2: http://py4e-data.dr-chuck.net/json?key=42&address=Kokshetau+Institute+of+Economics+and+Management

...