如何从python中获取值json获取位置?

时间:2016-02-24 06:56:32

标签: python json google-maps

如何在Python文件json中使用lat / lng中的反向地理编码。之后打印文件json的位置名称。

import json

Json_data=[{"lat":"3.160","lng":"101.710"},
           {"lat":"2.350","lng":"102.030"},
           {"lat":"6.120","lng":"102.130"}]

#Json_data=[{"lat":3.160,"lng":101.710},
#           {"lat":2.350,"lng":102.030},
#           {"lat":6.120,"lng":102.130}]

def revrseGeocode(latlng):
    result={}
    url ='https://maps.googleapis.com/maps/api/geocode/json?latlng={0} &key={1}'
    apikey='AIzaSyC6gSdW2pWz9QgaBY2ZlZcYRTKva9-x74w'
    request= url.format(latlng,apikey)
    data= json.loads(request)
    if len(data['results'])>0:
        result=data['results'][0]
        return result

for i,row in Json_data:
    Json_data[i]= revrseGeocode(Json_data[1][i]+','+Json_data[1][i])

for i,row in Json_data:
    if 'address_components' in row['geocode_data']:
        for component in row['geocode_data']['address_components']:
            if 'country' in component['types']:
                Json_data['country'][i]= component['long_name']
        for component in row['geocode_data']['address_components']:
            if 'locality' in component['types']:
                Json_data['city'][i]=component['long_name']
                break
            elif 'postal_town' in component['types']:
                Json_data['city'][i] = component['long_name']
                break
            elif 'administrative_area_level_2' in component['types']:
                Json_data['city'][i]=component['long_name']
                break
            elif 'administrative_area_level_1' in component['types']:
                Json_data['city'][i]= component['long_name']
                break

#ERROR:

  

File" /home/magic/Desktop/python/test1.py" ;,第22行,在       Json_data [i] = revrseGeocode(Json_data [1] [i] +',' + Json_data [1] [i])

     

文件" /home/magic/Desktop/python/test1.py",第16行,在revrseGeocode中       data = json.loads(request)

     

文件" /usr/lib/python2.7/json/ init .py",第338行,在加载中       return _default_decoder.decode(s)

     

File" /usr/lib/python2.7/json/decoder.py" ;,第366行,解码       obj,end = self.raw_decode(s,idx = _w(s,0).end())

     

文件" /usr/lib/python2.7/json/decoder.py",第384行,在raw_decode中       引发ValueError(" No JSON对象无法解码")ValueError:无法解码JSON对象

1 个答案:

答案 0 :(得分:0)

首先,你的Json_data是一个列表。您可以通过Jason_data [index]访问它,其中index可以是0到len之间的任何数字(Jason_data)。

您正尝试将其作为字典访问。因此错误。