熊猫似乎忽略了额外的(无效)参数.例如
import pandas as pd
df=pd.read_excel('myfile.xlsx', some_dummy_param=True)
Run Code Online (Sandbox Code Playgroud)
我期望(但没有得到)一个像......的错误
TypeError: __init__() got an unexpected keyword argument 'some_dummy_param'
Run Code Online (Sandbox Code Playgroud)
问题是,由于没有错误,我认为"some_dummy_param"是有效的.这当然不是预期的.有没有办法确保只有有效的参数传递给read_excel方法?
不,不是真的.
关键字参数通常在Pandas中传递**kwargs,它被转发或视为一个dict.使用它的函数dict可以自由检查是否有其他键不是他们期望的键.
你可以这样做:
def safe_read_excel(self, f_name, *args, **kwargs):
# Check if kwargs contains wrong parameters
if set(kwargs.keys()).difference(set(<expected keys>)):
raise ValueError(<some messagge>)
return self.read_excel(f_name, *args, **kwargs)
pd.DataFrame.safe_read_excel = safe_read_excel
Run Code Online (Sandbox Code Playgroud)
但是,这会
| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |