Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在GET请求中从API请求特定元素?_Python_Json_Google Maps Api 3_Python Requests - Fatal编程技术网

Python 如何在GET请求中从API请求特定元素?

Python 如何在GET请求中从API请求特定元素?,python,json,google-maps-api-3,python-requests,Python,Json,Google Maps Api 3,Python Requests,这里有几行更大的程序 results = requests.get("https://roads.googleapis.com/v1/snapToRoads?path=12.919082641601562,77.65169525146484|12.918915748596191,77.6517105102539|12.918656349182129,77.65177154541016|12.918524742126465,77.6517562866211|12.918295860290527,7

这里有几行更大的程序

results = requests.get("https://roads.googleapis.com/v1/snapToRoads?path=12.919082641601562,77.65169525146484|12.918915748596191,77.6517105102539|12.918656349182129,77.65177154541016|12.918524742126465,77.6517562866211|12.918295860290527,77.65178680419922|12.918216705322266,77.65177154541016|12.918027877807617,77.65178680419922||12.91647720336914,77.65180206298828|12.91647720336914,77.65180206298828|12.916269302368164,77.65177154541016|12.916149139404297,77.65178680419922|12.916014671325684,77.65177917480469|12.91580867767334,77.65179443359375|12.915785789489746,77.65182495117188|12.913755416870117,77.65186309814453|12.913578987121582,77.65186309814453|12.913309097290039,77.65184783935547|12.913025856018066,77.65186309814453|12.912832260131836,77.65187072753906|12.912651062011719,77.65190124511719|12.912428855895996,77.65188598632812|12.912148475646973,77.65184020996094|12.9120512008667,77.65180206298828|12.91196060180664,77.65179443359375|12.911927223205566,77.65165710449219|12.911907196044922,77.6515884399414|12.911901473999023,77.65150451660156|12.91188907623291,77.65132904052734|12.911890029907227,77.65113067626953|12.911898612976074,77.65096282958984|12.911872863769531,77.6508560180664||12.912422180175781,77.64830&key=AIzaSyAmplaUG26XJGwPrLbky2bHQ-eBmQvZUVU")

print(results.json())
输出:

{'snappedPoints': 
    [
       {'location': {'latitude': 12.919082345679861, 'longitude': 77.65168471404562}, 'originalIndex': 0, 'placeId': 'ChIJ6yP7JIIUrjsRpHSPhEcWRHc'}, {'location': {'latitude': 12.918915069015311, 'longitude': 77.65169005380653}, 'originalIndex': 1, 'placeId': 'ChIJ6yP7JIIUrjsRpHSPhEcWRHc'}, {'location': {'latitude': 12.91865394531316, 'longitude': 77.65169918497911}, 'originalIndex': 2, 'placeId': 'ChIJ6yP7JIIUrjsRpHSPhEcWRHc'}, {'location': {'latitude': 12.91852299728483, 'longitude': 77.65170376406233}, 'originalIndex': 3, 'placeId': 'ChIJ6yP7JIIUrjsRpHSPhEcWRHc'}, {'location': {'latitude': 12.918293368390502, 'longitude': 77.65171179387626}, 'originalIndex': 4, 'placeId': 'ChIJ6yP7JIIUrjsRpHSPhEcWRHc'}, {'location': {'latitude': 12.918214811587053, 'longitude': 77.65171454089874}, 'originalIndex': 5, 'placeId': 'ChIJ6yP7JIIUrjsRpHSPhEcWRHc'}, {'location': {'latitude': 12.91802528954814, 'longitude': 77.65172119976897}, 'originalIndex': 6, 'placeId': 'ChIJY0KcOIIUrjsRkOk78pj9o5I'}, {'location': {'latitude': 12.917911987935893, 'longitude': 77.65172590496891}, 'originalIndex': 7, 'placeId': 'ChIJY0KcOIIUrjsRkOk78pj9o5I'}, {'location': {'latitude': 12.917772027120648, 'longitude': 77.65173171726882}, 'originalIndex': 8, 'placeId': 'ChIJY0KcOIIUrjsRkOk78pj9o5I'}, {'location': {'latitude': 12.917657472888019, 'longitude': 77.65173647447801}, 'originalIndex': 9, 'placeId': 'ChIJY0KcOIIUrjsRkOk78pj9o5I'}, {'location': {'latitude': 12.917551187179303, 'longitude': 77.65174088830797}, 'originalIndex': 10, 'placeId': ...
    ]
}

现在我需要特别请求网页的“纬度”和“经度”部分,并将它们存储在一个集合中。你知道我怎么称呼这些单独的元素吗

不幸的是,简短的回答是,您不能简单地从
get
请求执行此操作。这个答案很好地解释了这一点

这意味着您必须
获取整个json表,并在本地获取
纬度
经度

snappoints = results.json()['snappedPoints']
myset = set()
for point in snappoints:
    # this is each individual element in snapPoints array
    myset.add((point['location']['latitude'], point['location']['longitude']))

我假设您指的是SnapedPoints数组中每个位置的纬度和经度

您可以使用请求模块提供的内置JSON解码器:

如果您愿意,也可以使用Python的JSON模块:|


一旦你解码了JSON响应,你就可以在你的位置上迭代并获取你想要的部分。

你能详细说明一下这个过程吗?非常感谢!正如你在问题中看到的,我已经解码了它。你能帮我完成迭代吗?