Ne yapmaya çalışıyorum aşağıdaki gibi enlem ve boylam koordinatları tarafından belirtilen bir yol boyunca bir google haritalar API yükseklik verileri ayıklamak olduğunu:
from urllib2 import Request, urlopen
import json
path1 = '42.974049,-81.205203|42.974298,-81.195755'
request=Request('http://maps.googleapis.com/maps/api/elevation/json?locations='+path1+'&sensor=false')
response = urlopen(request)
elevations = response.read()
Bu bana şöyle bir veri veriyor:
elevations.splitlines()
['{',
' "results" : [',
' {',
' "elevation" : 243.3462677001953,',
' "location" : {',
' "lat" : 42.974049,',
' "lng" : -81.205203',
' },',
' "resolution" : 19.08790397644043',
' },',
' {',
' "elevation" : 244.1318664550781,',
' "location" : {',
' "lat" : 42.974298,',
' "lng" : -81.19575500000001',
' },',
' "resolution" : 19.08790397644043',
' }',
' ],',
' "status" : "OK"',
'}']
burada DataFrame olarak koyarak ne olsun:
pd.read_json(elevations)
ve işte istediğim şey:
Bunun mümkün olup olmadığından emin değilim, ancak esas olarak aradığım şey, yükseklik, enlem ve boylam verilerini bir panda veri çerçevesinde bir araya getirmenin bir yoludur (fantezi mutiline başlıkları olması gerekmez).
Herhangi biri bu verilerle çalışma konusunda yardımcı olabilir veya tavsiyede bulunabilseydi, bu harika olurdu! Daha önce json verileriyle fazla çalışmadığımı söyleyemiyorsanız ...
DÜZENLE:
Bu yöntem o kadar çekici değil ama işe yarıyor gibi görünüyor:
data = json.loads(elevations)
lat,lng,el = [],[],[]
for result in data['results']:
lat.append(result[u'location'][u'lat'])
lng.append(result[u'location'][u'lng'])
el.append(result[u'elevation'])
df = pd.DataFrame([lat,lng,el]).T
enlem, boylam, yükseklik sütunlarına sahip veri çerçevesini sonlandırır