根据bool的状态附加到列表的错误

时间:2016-08-01 15:11:55

标签: python geopy

我正在使用2个不同的库并通过它们运行地址。首先,我使用geopy来清理和地理编码地址。然后我通过pygeocoder运行地址,看看输出是否是一个有效的地址。如果输出有效,我将地址附加到列表中,稍后我将返回该列表。如果没有,我附加“无法清理”(这是一个烧瓶应用程序)。

即使地址有效,并且pygeocoder的valid_address函数返回true,地址也不会因某种原因被附加到列表中。每次都附加“无法清理”。

这是我的代码:

if g.geocode(address).valid_address:
    cleaned.append((str(address) + ", " + str(zipcode.lstrip()) +
                        ", " + str(clean.latitude) + ", " + str(clean.longitude)) + '<br>')
    success += 1
else:
    cleaned.append('Can not be cleaned <br>')
        fail += 1
except AttributeError:
    cleaned.append('Can not be cleaned <br>')
    fail += 1
except ValueError:
    cleaned.append('Can not be cleaned <br>')
    fail += 1
except GeocoderTimedOut as e:
    cleaned.append('Can not be cleaned <br>')
    fail += 1

你们有什么人认为我做错了?

1 个答案:

答案 0 :(得分:0)

解决了我的问题。

我没有给pygeocoder足够的信息。我的地址是街道号街道名称的格式。通过将城市附加到地址的末尾然后验证它我解决了问题。

不幸的是,pygeocoder通过谷歌地图工作,谷歌地图的请求限制相对较低。