我尝试显示页面坐标,但是有些页面没有坐标,API 的行为很有趣。
对于:
from wikipedia import wikipedia, DisambiguationError
try:
page = wikipedia.page("West Side Highway")
except DisambiguationError as exception:
page = wikipedia.page(exception.options[0], auto_suggest=False)
当我尝试验证是否有一些坐标时:
if page.coordinates is None:
print("no coordinates")
我不断从
KeyError
库获取 wikipedia
:
if page.coordinates is None:
^^^^^^^^^^^^^^^^
File "/Users/mav/.pyenv/versions/stories_env/lib/python3.11/site-packages/wikipedia/wikipedia.py", line 570, in coordinates
coordinates = request['query']['pages'][self.pageid]['coordinates']
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
KeyError: 'coordinates'
如何捕获缺少
coordinates
的页面来处理它?
该错误似乎来自库本身。 根据这个 GitHub issue,该库没有采取任何措施来防止 KeyError。您可以使用 try/ except 来防止错误。例如:
from wikipedia import wikipedia, DisambiguationError
if __name__ == "__main__":
try:
page = wikipedia.page("West Side Highway")
print(page.coordinates)
except KeyError:
print("No coordinates")
except DisambiguationError as exception:
page = wikipedia.page(exception.options[0], auto_suggest=False)