本文主要是介绍解决pandas读取xlsx时报错:Must explicitly set engine if not passing in buffer or path for io.,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天在用低版本的pandas==0.24.2时,读取xlsx文件报错。
pd.read_excel(xlsx_file_IO_string) # xlsx IO流
Must explicitly set engine if not passing in buffer or path for io.
查看了源代码,如果未指定engine,那么默认使用xlrd来读,而且我本地的xlrd==1.2.0,所以不存在xlrd版本问题。另外又尝试指定了engine=openpyxl,仍然不能解决读取xlsx文件错误的问题。确定是pandas版本过低导致的问题,有条件的可以升级pandas版本,没条件的继续往下看。
使用BytesIO对象,声明流为bytes类型,成功解决问题。
from pandas.io.common import BytesIO
import pandas as pdpd.read_excel(BytesIO(content))) # 此处centent为你的xlsx文件内容
这篇关于解决pandas读取xlsx时报错:Must explicitly set engine if not passing in buffer or path for io.的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!