我刚刚发现功能skip_footer的kwarg pandas.read_excel()在版本0.23.0中已弃用,现在称为skipfooter。看来skip_footer被默默地忽略了,这使得找出为什么我的代码停止按应有的工作变得更加困难。

编辑:


  好的,我撒谎了:我实际上在使用pandas.ExcelFile.parse()。文档建议它们采用相同的参数,但是在源代码中似乎存在一些细微差别,包括此参数。据我所知,我并没有抑制或忽略警告。


当我使用不正确的kwarg时,是否可以通过警告或异常来提醒我?

最佳答案

查看pandas.ExcelFile.parse()源代码,它不检查skip_footer中的**kwds,也不检查其使用的基础方法和函数。

因此,它确实会默默地忽略大多数未知的关键字。

尽管Python抱怨缺少位置参数,但它无法检查关键字参数。 AFAIK,该语言没有内置机制可以实现这一点。

可以编写单个函数来拒绝无效的关键字:

def kwtest(**kwds):
     allowed = {'spam', 'eggs', 'cheese'}
     invalid = set(kwds.keys()) - allowed
     if invalid:
         raise ValueError(f'invalid keyword arguments {invalid}')




(旧答案)

根据熊猫的documentationcodeskip_footer关键字参数仍然存在。

但是,read_excel函数用@deprecate_kwargskip_footer装饰器标记。据我所知,使用skip_footer关键字参数应该引发FutureWarning异常。

您是否抑制或忽略警告?

关于python - 如何在python中检测不正确的kwarg名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57349714/

10-10 15:50