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

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

问题描述

尝试显示页面坐标,但是某些页面没有坐标,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")

我一直在从wikipedia库中得到KeyError的错误:

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 问题,该库并没有做任何防止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)

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程