Những gì tôi đang cố gắng làm là trích xuất dữ liệu độ cao từ API google maps dọc theo một đường dẫn được chỉ định bởi các tọa độ kinh độ và vĩ độ như sau:
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()
Điều này cho tôi một dữ liệu trông như thế này:
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"',
'}']
khi đưa vào làm DataFrame ở đây là những gì tôi nhận được:
pd.read_json(elevations)
và đây là những gì tôi muốn:
Tôi không chắc liệu điều này có khả thi hay không, nhưng chủ yếu những gì tôi đang tìm kiếm là một cách để có thể đặt dữ liệu độ cao, vĩ độ và kinh độ trong một khung dữ liệu gấu trúc (không phải có các tiêu đề mutiline ưa thích).
Nếu bất kỳ ai có thể giúp đỡ hoặc đưa ra một số lời khuyên về việc làm việc với dữ liệu này sẽ rất tuyệt! Nếu bạn không thể nói rằng tôi đã không làm việc nhiều với dữ liệu json trước khi ...
BIÊN TẬP:
Phương pháp này không hấp dẫn lắm nhưng dường như có hiệu quả:
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
kết thúc khung dữ liệu có các cột vĩ độ, kinh độ, độ cao