我一直在绞尽脑汁解决这个问题,以及从googlemapsapi逐步输出所需的逻辑。在
实际上,我使用的是谷歌地图距离矩阵: 下面是一个API调用返回的两个地址之间的距离/时间信息的示例,在本例中,我将其分配给变量distanceMatrixReturn。在
distanceMatrixReturn = {
{'destination_addresses': ['This would be ADDRESS 1'],
'status': 'OK',
'rows': [
{
'elements': [
{
'duration_in_traffic': {
'text': '10 mins', 'value': 619},
'status': 'OK',
'distance': {'text': '2.8 mi', 'value': 4563},
'duration': {'text': '9 mins', 'value': 540}}]}],
}]
}],
'origin_addresses': ['This would be ADDRESS 2']
}
现在,作为一个python新手,正在为嵌套字典和列表而挣扎; 以下是我的思考过程:
我想访问值'2.8 mi'
,在我的印象中,这个值在一个与键“text”相关的字典中,而这个字典又在一个分配给键'distance'
的字典中,该键在另一个具有键'duration_in_traffic'
的字典中。在
键'duration_in_traffic'
似乎在一个列表中,与字典键'elements'
相关联,后者又在一个与另一个字典键'rows'
相关联的列表中。在
现在,这看起来非常复杂,必须有一种简单的方法来处理这种情况,或者我的逻辑是关于嵌套在嵌套元素中的以及访问它们的方法。在
例如,在这里的其他帖子中,我阅读了下面的文章,试图找出解释看似相似的东西的过程。How to access a dictionary key value present inside a list?
请让我知道,如果我在这篇文章的距离矩阵返回结构不好。我把它隔开,让它更具可读性,我希望我已经做到了。在
如果您试图从
distanceMatrixReturn
访问2.8 mi
,可以执行以下操作:你的字典坏了,很难想象正确的道路。不管怎样。在
在python3上,必须首先从
functools
导入reduce
。在虽然难看,但很简单:
实际上没有任何更干净的方法来实现这一点,除非您想创建
namedtuple
或类,但实际上您仍然要以相同的方式解析数据-只需在程序的不同部分进行分解。在至于哪种选择是最好的-你的程序的需要将决定这一点。在
相关问题 更多 >
编程相关推荐