在执行不同的测试时,我发现一个问题,即调用时无法按['rating].values]对数据进行排序谷歌.places(). 例如,如果我查询数据并按['name']排序,它就可以很好地工作。 示例如下:
gmaps = googlemaps.Client(key='key_is_here')
nyc = (40.6971494, -74.2598655)
msk = (55.7535081, 37.6144299)
new_arr = []
params = {
'query': ['restaurants', 'bakery', 'cafe', 'food'],
'location': nyc
'radius': 10000
}
gmapz = gmaps.places(**params)
print sorted(gmapz['results'], key = lambda x : x['name'],reverse = True):
""" outputs list of dicts """
但是,当我在lambda key中使用['raiting']时,它会说
Traceback (most recent call last):
File "/Users/Aleshka/Desktop/teszz.py", line 22, in <module>
print sorted(gmapz['results'],key = lambda x : x['rating'],reverse=True)
File "/Users/Aleshka/Desktop/teszz.py", line 22, in <lambda>
print sorted(gmapz['results'],key = lambda x : x['rating'],reverse=True)
KeyError: 'rating'
这意味着这个密钥不存在。 起初我认为这可能是谷歌输出unicode格式的原因,但是
>>> u'abc' == 'abc'
True
我也很困惑,因为几天前我在纽约(准确地说是曼哈顿)也能做到这一点,但是当我在不同的地方做了一些测试,选择了俄罗斯的莫斯科时,就失败了。不知道出了什么问题。 我以为这可能是因为我达到了查询限制,但事实并非如此。你知道吗
在@Shra1的帮助下,我修复了这个问题
显示第一个不带评级的项目,其余项目按降序排序。你知道吗
可能任何一个结果都没有关键的“评级”。 尝试通过打印没有“rating”键的结果来调试它。你知道吗
现在你知道哪些结果没有任何评级。你知道吗
相关问题 更多 >
编程相关推荐