- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一些带有错误处理的 Python 代码,但出于某种原因,代码似乎仍然无法处理这个特定错误:
raise GQueryError("No corresponding geographic location could be found for the specified location, possibly because the address is relatively new, or because it may be incorrect.")
geopy.geocoders.google.GQueryError: No corresponding geographic location could be found for the specified location, possibly because the address is relatively new, or because it may be incorrect.
这是来源:
import csv
from geopy import geocoders
import time
g = geocoders.Google()
spamReader = csv.reader(open('locations.csv', 'rb'), delimiter='\t', quotechar='|')
f = open("output.txt",'w')
for row in spamReader:
a = ', '.join(row)
#exactly_one = False
time.sleep(1)
try:
place, (lat, lng) = g.geocode(a)
except ValueError:
#print("Error: geocode failed on input %s with message %s"%(a, error_message))
continue
b = str(place) + "," + str(lat) + "," + str(lng) + "\n"
print b
f.write(b)
我是否没有包含足够的错误处理?我的印象是“除了 ValueError”可以处理这种情况,但我肯定错了。
在此先感谢您的帮助!
附言我从代码中提取了这个,但我还不知道它的真正含义:
def check_status_code(self,status_code):
if status_code == 400:
raise GeocoderResultError("Bad request (Server returned status 400)")
elif status_code == 500:
raise GeocoderResultError("Unkown error (Server returned status 500)")
elif status_code == 601:
raise GQueryError("An empty lookup was performed")
elif status_code == 602:
raise GQueryError("No corresponding geographic location could be found for the specified location, possibly because the address is relatively new, or because it may be incorrect.")
elif status_code == 603:
raise GQueryError("The geocode for the given location could be returned due to legal or contractual reasons")
elif status_code == 610:
raise GBadKeyError("The api_key is either invalid or does not match the domain for which it was given.")
elif status_code == 620:
raise GTooManyQueriesError("The given key has gone over the requests limit in the 24 hour period or has submitted too many requests in too short a period of time.")
最佳答案
现在 try/except 只捕获 ValueError
。要同时捕获 GQueryError
,请将 except ValueError:
行替换为:
except (ValueError, GQueryError):
或者如果 GQueryError 不在你的命名空间中,你可能需要这样的东西:
except (ValueError, geocoders.google.GQueryError):
或者捕获 ValueError 和 check_status_code
中列出的所有错误:
except (ValueError, GQueryError, GeocoderResultError,
GBadKeyError, GTooManyQueriesError):
(同样,添加 geocoders.google.
或任何错误位置到所有 geopy 错误的前面,如果它们不在您的命名空间中。)
或者,如果您只想捕获所有可能的异常,您可以简单地这样做:
except:
但这通常是不好的做法,因为它还会在您的 place, (lat, lng) = g.geocode(a)
行中捕获诸如语法错误之类的东西,而您却不知道不想被捕获,所以最好检查 geopy 代码以找到它可能抛出的所有你想捕获的异常。希望所有这些都列在您找到的那段代码中。
关于python - 具有错误处理功能的 Geopy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10776834/
我正在使用 VS,我正在尝试运行 geopy,我安装了所有先决条件并收到此错误 “ModuleNotFoundError:没有名为‘geopy.geocoders’的模块;‘geopy’不是包” fr
我已经安装了geopy pip install geopy 我检查了我的命令行,它就在那里。 但是每当我尝试在 Anaconda、PyCharm 或 Jupiter Notebooks 中使用它时,我
from geopy.distance import vincenty 我刚刚安装了 geopy 包 2.0.0,我想像 doc 所说的那样使用 geopy.distance.vincenty()。但
我正在尝试使用 geopy 获取城市和国家名称。 通常这是使用 geopy 获取城市和国家/地区的方法。 from geopy.geocoders import Nominatim geolocato
我正在尝试使用 geopy 反转地理编码坐标并检索相应的国家/地区代码。但是,Geopy 似乎没有提供获取国家/地区代码的方法。因此,我试图首先检索国家/地区名称,然后将它们转换为代码。不幸的是,我的
我正在尝试将加拿大邮政编码转换为经纬度坐标,但是 geopy 将它们返回为“无”或位于不同国家/地区的某个地方 postal_code = "A1B 2C3" #<-- in this format
我正在尝试使用 GeoPy 将一些地址转换为数据框中的坐标。有些地址无效,但我不知道是哪些地址。因此,我需要库跳过无效的字段或将它们更改为 Null 或至少提出错误的确切字段。 以下工作正常: imp
我已经将 geopy 用于 python 项目大约两个月了。我可能使用代码不到 100 次,一次获得一个返回。所以我不认为我在滥用它。 昨天我收到超时错误,今天我收到以下错误: geopy.exc.G
我有一些带有错误处理的 Python 代码,但出于某种原因,代码似乎仍然无法处理这个特定错误: raise GQueryError("No corresponding geographic locat
我正在尝试在 Python 中安装 Geopy。我如何用非常简单的术语来做到这一点?我安装了 Python 3.4.0 启动器。我在哪里编写 Geopy 安装命令?在扩展名为 .py 的文本文件上?还
我正在根据邮政编码计算纬度和经度。 我已经安装了geopy pip install geopy 在我的代码中: from geopy.geocoders import GoogleV3 def get
我正在使用 geopy 对一些地址进行地理编码,我想捕捉超时错误并将它们打印出来,以便我可以对输入进行一些质量控制。我将地理编码请求放在 try/catch 中,但它不起作用。关于我需要做什么的任何想
以下脚本可以完美处理包含 2 行的文件,但是当我尝试 2500 行文件时,出现 429 个异常。所以,我将查询时间增加到 5 秒。我还填写了用户代理。尝试失败后,我连接到 VPN 以更改“新鲜”,但我
背景 我想添加一个模型管理器函数,该函数根据与坐标的接近度过滤查询集。我找到了这个blog posting代码完全符合我的要求。 代码 下面的代码片段似乎使用了 geopy此后已删除的功能。它通过限制
背景 我想添加一个模型管理器函数,该函数根据与坐标的接近度过滤查询集。我找到了这个blog posting代码完全符合我的要求。 代码 下面的代码片段似乎使用了 geopy此后已删除的功能。它通过限制
我有一个充满十进制格式的经度/纬度对的表(例如,-41.547、23.456)。我想以 "Easting and Northing"/UTM 格式显示值。 geopy是否提供了从十进制转换为UTM的方
我正在尝试在 pyCharm 中运行 python 程序,但出现此错误: Traceback (most recent call last): File "/Users/amywang/Documen
我正在使用 geopy 获取城市名称的纬度-经度对。对于单个查询,这工作得很好。我现在尝试做的是迭代城市名称的大列表(46.000)并获取每个城市的地理编码。然后,我通过一个检查循环运行它们,将城市(
我刚开始使用 GeoPy。我需要将给定位置转换为纬度和经度。但是我收到 GeocoderQuotaExceeded 错误。我只是按照文档中给出的示例进行操作。任何帮助将不胜感激。 from geopy
我是一个相对较新的 Python 用户,我正在尝试使用一个函数来使用“geopy”模块返回城市和国家/地区的纬度和经度。我有错误,因为我的城市拼错了,我设法 catch 了。我现在遇到的麻烦是我遇到超
我是一名优秀的程序员,十分优秀!