Python错误除外(多个错误)

Python错误除外(多个错误),python,python-3.x,error-handling,geolocation,Python,Python 3.x,Error Handling,Geolocation,我正在使用Python3。我使用数据库查找IP所在国,如果该IP不在数据库中,则返回None或AAA。在所有过程之后,在数据框的新列中显示返回结果(国家名称或无或AAA),具体来说,我在数据框中有三列,分别是日期时间和IP,我想添加一个新列“code1”,显示国家名称或无此IP 我在代码中添加了错误异常,但是它不起作用。代码和错误消息如下所示。有人能帮忙吗 下面是我在代码中添加“from geoip2.errors import AddressNotFoundError”时的报告。我猜这意味

我正在使用Python3。我使用数据库查找IP所在国,如果该IP不在数据库中,则返回None或AAA。在所有过程之后,在数据框的新列中显示返回结果(国家名称或无或AAA),具体来说,我在数据框中有三列,分别是日期时间和IP,我想添加一个新列“code1”,显示国家名称或无此IP

我在代码中添加了错误异常,但是它不起作用。代码和错误消息如下所示。有人能帮忙吗

下面是我在代码中添加“from geoip2.errors import AddressNotFoundError”时的报告。我猜这意味着当在数据库中找不到地址时,它不会返回任何内容,而是返回“无”(请参阅,有一个空方括号),因此,当我使用df['code1']=code1时,它报告值的数量不等于索引的数量。(我不确定)

事实上,我的目标是在我的原始数据框中添加一列,报告每个ip的国家,如果不在数据库中,则不报告。有没有其他方法来代替“df['code1']=code1”?任何帮助都将不胜感激。谢谢


异常与Python中的任何其他对象一样。它们必须在某个地方定义。在这种情况下,
AddressNotFoundError
没有定义,因此解释器不知道它的意思

必须进口:

from geoip2.errors import AddressNotFoundError


请参阅geoip2的相关部分。

您可以省略AddressNotFoundError,而改为

try:
    response1 = reader.country(row1)
    code1.append(response1.country.iso_code)
except:
    response1 = None
但是如果你真的想除掉AddressNotFoundError,那么在顶部

import geoip.errors.AddressNotFoundError

我将自己尝试一下,您运行的是什么版本的python?当我省略AddressNotFoundError时,它返回“ValueError:值的长度与索引的长度不匹配”。此外,当我添加“import geoip.errors.AddressNotFoundError”时,它会返回“ModuleNotFoundError:没有名为“geoip”的模块”。我刚刚意识到你应该试试这个:从geoip2.errors导入AddressNotFoundError我使用python 3。很抱歉,我不知道如何正确地跳过上面的屏幕截图。它显示的是一个链接,而不是图片。。如果单击上面的图片链接,它将显示我从geoip2.errors导入地址notfounderror添加时的报告。谢谢你的帮助。它也不起作用,我添加了import geoip2.errors.AddressNotFoundError,它返回“ModuleNotFoundError:没有名为'geoip2.errors.AddressNotFoundError'的模块;'geoip2.errors'不是一个包”很抱歉,我不知道如何正确地通过上面的屏幕截图。它显示的是一个链接,而不是图片。。如果单击上面的图片链接,它将显示我从geoip2.errors导入地址notfounderror添加时的报告。任何帮助都将不胜感激
import geoip.errors.AddressNotFoundError