J'utilise un programme pour interroger l'API Google Geocoding et rechercher les coordonnées des noms de villes. J'utilise time.sleep (1) pour m'assurer que je ne dépasse pas la limite de demande par seconde. Je suis également assez sûr que je n'ai pas dépassé la limite quotidienne de la demande et j'ai activé la facturation sur mon compte.L'API Google Geocoding a bloqué mon adresse IP
Le code a travaillé un certain temps il y a, mais maintenant que je le lance, le code renvoie une erreur comme ceci:
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Je suis allé à la liaison API dans le navigateur, et il me demande de taper "Nos systèmes ont détecté un trafic inhabituel à partir de votre réseau informatique Cette page vérifie si vous envoyez vraiment les demandes, et non un robot.".
Je ne pense pas que mon code est quelque chose de malveillant, et je me demande ce que j'ai fait mal avec le code.
Voici mon code:
import urllib.parse
import requests
import pandas as pd
import time
main_api = 'https://maps.googleapis.com/maps/api/geocode/json?'
api_key = '&key = **********'
state = "washington,"
country = "US"
file = r'C:\Users\rin\xy.xlsx'
xl_workbook = pd.ExcelFile(file)
df = xl_workbook.parse("xy")
components = 'components=country:US|state:washington'
city_name = df['city_name'].tolist()
for x in post_office:
address = x
print(">>>>>" + x + "<<<<<")
url = main_api + urllib.parse.urlencode({'address': address}) + state + country + api_key + components
print(url)
json_data = requests.get(url).json()
json_status = json_data['status']
print('API status: ' + json_status + '\n')
city = json_data['results'][0]['address_components'][0]['long_name']
state = json_data['results'][0]['address_components'][2]['long_name']
if x == city and state == "Washington":
print("MATCH:OK" + '\n')
if x == city and state == "Oregon":
print("ooooooooooo")
elif x != city_name:
print("WN")
if json_status == "OK":
formatted_address = json_data['results'][0]["formatted_address"]
print()
print(formatted_address)
LATITUDE = json_data['results'][0]["geometry"]["location"]["lat"]
LONGITUDE = json_data['results'][0]["geometry"]["location"]["lng"]
print(LATITUDE)
print(LONGITUDE)
print(">>>>>>>END<<<<<<")
print('\n')
time.sleep(1)