我想确保为正确的城市获得lat和lng。例如,澳大利亚有悉尼,加拿大有悉尼。这很好用
for d in listofobjs:
location = geolocator.geocode(d['city'])
d2 = {
'username': d['username'],
'latitude': location.latitude,
'longitude': location.longitude
}
listofobjs2.append(d2)
但如果我尝试这样的位置
,我会收到错误location = geolocator.geocode(d['city'],d['country'])
当我尝试从locatoion中读取纬度时出现错误
AttributeError: 'list' object has no attribute 'latitude'
是否可以将城市和国家/地区都传递给地理编码?
答案 0 :(得分:0)
在文档中声明geolocator.geocode可以返回0,1或更多值。 该方法可以返回一个列表,因此当您尝试将其作为单个结构元素访问时,会返回错误消息。 或者遍历列表并根据需要附加到listofobjs2。
您无法确定是否正好获得1个位置匹配。但为什么传递2个参数?我会将它们组合在一个字符串中,如文档示例所示:
"有些人在NYC"。所以如果你提出这样的请求:
d ['城市'] +" &#34 + d ['国家']
它会更好地匹配示例