I am receiving the following json response for a distances matrix which was gathered using the following code:
import requests
import json
payload = {
"origins": [{"latitude": 54.6565153, "longitude": -1.6802816}, {"latitude": 54.6365153, "longitude": -1.6202816}], #surgery
"destinations": [{"latitude": 54.6856522, "longitude": -1.2183634}, {"latitude": 54.5393295, "longitude": -1.2623914}, {"latitude": 54.5393295, "longitude": -1.2623914}], #oa - up to 625 entries
"travelMode": "driving",
"startTime": "2014-04-01T11:59:59+01:00",
"timeUnit": "second"
}
headers = {"Content-Length": "497", "Content-Type": "application/json"}
paramtr = {"key": "INSERT_KEY_HERE"}
r = requests.post('https://dev.virtualearth.net/REST/v1/Routes/DistanceMatrix', data = json.dumps(payload), params = paramtr, headers = headers)
data = r.json()["resourceSets"][0]["resources"][0]
and am attempting to flatten:
destinations.latitude, destinations.longitude, origins.latitude, origins.longitude, departureTime, destinationIndex, originIndex, totalWalkDuration, travelDistance, travelDuration
from:
{'__type': 'DistanceMatrix:http://schemas.microsoft.com/search/local/ws/rest/v1',
'destinations': [{'latitude': 54.6856522, 'longitude': -1.2183634},
{'latitude': 54.5393295, 'longitude': -1.2623914},
{'latitude': 54.5393295, 'longitude': -1.2623914}],
'errorMessage': 'Request completed.',
'origins': [{'latitude': 54.6565153, 'longitude': -1.6802816},
{'latitude': 54.6365153, 'longitude': -1.6202816}],
'results': [{'departureTime': '/Date(1396349159000-0700)/',
'destinationIndex': 0,
'originIndex': 0,
'totalWalkDuration': 0,
'travelDistance': 38.209,
'travelDuration': 3082},
{'departureTime': '/Date(1396349159000-0700)/',
'destinationIndex': 1,
'originIndex': 0,
'totalWalkDuration': 0,
'travelDistance': 40.247,
'travelDuration': 2708},
{'departureTime': '/Date(1396349159000-0700)/',
'destinationIndex': 2,
'originIndex': 0,
'totalWalkDuration': 0,
'travelDistance': 40.247,
'travelDuration': 2708},
{'departureTime': '/Date(1396349159000-0700)/',
'destinationIndex': 0,
'originIndex': 1,
'totalWalkDuration': 0,
'travelDistance': 34.857,
'travelDuration': 2745},
{'departureTime': '/Date(1396349159000-0700)/',
'destinationIndex': 1,
'originIndex': 1,
'totalWalkDuration': 0,
'travelDistance': 36.895,
'travelDuration': 2377},
{'departureTime': '/Date(1396349159000-0700)/',
'destinationIndex': 2,
'originIndex': 1,
'totalWalkDuration': 0,
'travelDistance': 36.895,
'travelDuration': 2377}]}
The best I have currently achieved is:
json_normalize(outtie, record_path="results", meta="origins")
However this contains nested origins and destinations refuse to append. I also tried to drop the type to see if it made a difference, and explored max_level= and record_prefix='_' but to no avail.