借助reticulate在R中执行Python代码时函数传参报错问题
问题原因及解决办法
- 核心原因:你使用的
wbdata版本过旧,get_dataframe()方法在旧版本中不存在data_date和convert_date这两个参数,因此传入时会触发“意外关键字参数”的错误。
具体解决步骤
检查当前wbdata版本
在R中通过reticulate执行以下代码查看版本:reticulate::py_run_string("import wbdata; print(wbdata.__version__)")通常低于0.3.0的版本会存在这个参数差异问题。
升级wbdata到最新版本
在R中直接通过reticulate升级:reticulate::py_install("wbdata", upgrade = TRUE)或者在Python环境中执行pip命令升级:
pip install --upgrade wbdata临时兼容方案(无法升级时)
如果暂时无法升级版本,改用旧版本的参数写法:- 时间范围参数用
date替代data_date - 手动处理日期转换,替代
convert_date=True的功能
示例代码:
import pandas as pd # 旧版本调用方式 data = wbdata.get_dataframe(indicators, country=country_1, date=(start_date, end_date)) # 手动转换索引为日期格式 data.index = pd.to_datetime(data.index)- 时间范围参数用
内容的提问来源于stack exchange,提问作者newfinder
相关产品推荐
相关产品推荐

