Я не смог найти никакого решения, похожего на мою структуру json в python на форуме, поэтому прошу свежую помощь.
Я пытаюсь извлечь значения широты и долготы из файла geolocation.jsonкоторая имеет следующую структуру
{"userId":"Geo-data","data": {"mocked":false,"timestamp":1548173963281,"coords":{"speed":0,"heading":0,"accuracy":20.20400047302246,"longitude":88.4048656,"altitude":0,"latitude":22.5757344}}}
Я пытаюсь следующий код, чтобы извлечь широту и долготу последних данных из файла и передать его в googleAPI для обратного геокодирования.
import json
with open("geolocation.json") as geo_file:
geo_dict = [json.loads(line) for line in geo_file]
for geo in geo_dict:
last_loc= geo_dict[-1]
geolat= str(last_loc['latitude'])
geolong= str(last_loc['longitude'])
#geolat = format(float(geo['latitude']),'.6f')
#geolong = format(float(geo['longitude']),'.6f')
from geopy.geocoders import GoogleV3
#geolat='22.5757344'
#geolong='88.4048656'
latlong = [geolat, geolong]
val = ", ".join(latlong)
geolocator = GoogleV3(api_key='My_API_KEY')
locations = geolocator.reverse(val)
if locations:
print(locations[0].address)
Код работает, если я жестко запрограммировал широту и долготу вместо того, чтобы извлекать их из файла (удаляя весь аспект json).Итак, проблема в извлечении. Я получаю ошибку как -
geolat= str(last_loc['latitude'])
KeyError: 'latitude'
С моими ограниченными знаниями Python я застрял.