Python 除外错误(多个错误)
Posted
技术标签:
【中文标题】Python 除外错误(多个错误)【英文标题】:Python Except Errors (multiple errors) 【发布时间】:2018-12-25 15:18:39 【问题描述】:我使用的是python 3。我使用数据库查找IP的国家,如果IP不在数据库中,则返回None或AAA。完成所有过程后,在数据框中的新列中显示返回结果(国家名称或 None 或 AAA ),具体来说,我在数据框中有三列是日期时间和 IP,我想添加一个新列“code1”显示国家名称或无此 IP。
我在代码中添加了错误异常,但是它不起作用。代码和错误信息如下。任何人都可以帮忙吗?
以下是我在代码中添加“from geoip2.errors import AddressNotFoundError”时的报告。我猜这意味着当在数据库中找不到地址时,它只返回“无”(请参阅,有一个空方括号),因此,当我使用 df['code1']=code1 时,它会报告值的数量不等于索引的数量。 (我不确定)。
事实上,我的目标是在我的原始数据框中添加一列,报告每个 ip 的国家/地区,如果不在数据库中,则不报告。有没有其他方法可以代替“ df['code1']=code1 ”?任何帮助将不胜感激。谢谢
【问题讨论】:
【参考方案1】:异常就像 Python 中的任何其他对象一样。它们必须在某个地方定义。在这种情况下,AddressNotFoundError
没有定义,因此解释器不知道它的含义。
必须导入:
from geoip2.errors import AddressNotFoundError
或
import geoip2.errors.AddressNotFoundError
查看 geoip2 documentation 的相关部分。
【讨论】:
感谢您的帮助。它也不起作用,我添加了 import geoip2.errors.AddressNotFoundError,它返回“ModuleNotFoundError: No module named 'geoip2.errors.AddressNotFoundError'; 'geoip2.errors' is not a package” 很抱歉,我不知道如何正确通过上面的屏幕截图。它显示的是链接而不是图片。如果您单击上面的图片链接,它会显示当我从 geoip2.errors import AddressNotFoundError 添加时报告的内容。任何帮助将不胜感激【参考方案2】:你可以省略 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: No module named 'geoip'”。 我刚刚意识到你应该试试这个:from geoip2.errors import AddressNotFoundError 我使用 python 3. 很抱歉,我不知道如何正确通过上面的屏幕截图。它显示的是链接而不是图片。如果您单击上面的图片链接,它会显示当我从 geoip2.errors import AddressNotFoundError 添加时报告的内容。任何帮助将不胜感激以上是关于Python 除外错误(多个错误)的主要内容,如果未能解决你的问题,请参考以下文章
Python - 运行多个使用多处理的 python 脚本有时会影响性能和错误
Python zipfile 模块错误地认为我有一个跨越多个磁盘的 zipfile,抛出 BadZipfile 错误