如何处理维基百科 Python API 中页面缺失的坐标

问题描述 投票:0回答:1

我尝试显示页面坐标。然而,有些页面没有坐标,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
来处理它?

python wikipedia wikipedia-api
1个回答
0
投票

该错误似乎来自库本身。 根据这个 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)
© www.soinside.com 2019 - 2024. All rights reserved.