Python 从AWS S3 bucket引用对象时,无法执行pandas read_excel函数两次
尝试从存储在S3存储桶中的同一excel文件中读取多个工作表 代码第一次运行正常,但第二次尝试执行read_excel函数从同一excel文件中读取另一个工作表时出错。虽然“obj”对象保持不变,但read_excel函数不起作用Python 从AWS S3 bucket引用对象时,无法执行pandas read_excel函数两次,python,pandas,amazon-s3,Python,Pandas,Amazon S3,尝试从存储在S3存储桶中的同一excel文件中读取多个工作表 代码第一次运行正常,但第二次尝试执行read_excel函数从同一excel文件中读取另一个工作表时出错。虽然“obj”对象保持不变,但read_excel函数不起作用 obj = S3_Client.get_object(Bucket=bucket_name, Key=str(XLSX_Keys.iloc[0,0])) File1 = pd.read_excel(io.BytesIO(obj['Body'].read()) , sh
obj = S3_Client.get_object(Bucket=bucket_name, Key=str(XLSX_Keys.iloc[0,0]))
File1 = pd.read_excel(io.BytesIO(obj['Body'].read()) , sheet_name = "Sheet1",dtype=str, header= 4)
File2 = pd.read_excel(io.BytesIO(obj['Body'].read()) , sheet_name = "Sheet2",dtype=str, header= 4)
value错误:文件不是可识别的excel文件
现在,在执行read_excel函数从同一个excel文件中读取第二张工作表之前,再次执行get_object函数
像这样
obj = S3_Client.get_object(Bucket=bucket_name, Key=str(XLSX_Keys.iloc[0,0]))
File1 = pd.read_excel(io.BytesIO(obj['Body'].read()) , sheet_name = "Sheet1",dtype=str, header= 4)
obj = S3_Client.get_object(Bucket=bucket_name, Key=str(XLSX_Keys.iloc[0,0]))
File2 = pd.read_excel(io.BytesIO(obj['Body'].read()) , sheet_name = "Sheet2",dtype=str, header= 4)
obj = S3_Client.get_object(Bucket=bucket_name, Key=str(XLSX_Keys.iloc[0,0]))
File3 = pd.read_excel(io.BytesIO(obj['Body'].read()) , sheet_name = "Sheet3",dtype=str, header= 4)
这当然是非常冗余的编码,所以请寻求一些建议。谢谢 保存您
阅读的内容
以便重复使用
obj = S3_Client.get_object(Bucket=bucket_name, Key=str(XLSX_Keys.iloc[0, 0]))
content = obj['Body'].read()
File1 = pd.read_excel(io.BytesIO(content), sheet_name="Sheet1", dtype=str, header=4)
File2 = pd.read_excel(io.BytesIO(content), sheet_name="Sheet2", dtype=str, header=4)
Guess
.read()
只能调用一次?你最好把obj['Body'].read()保存在一个变量中,然后重新使用它。谢谢阿兹罗!!!看起来在第一次调用后,文件中没有任何内容可供读取(错误原因为“ValueError:文件不是可识别的excel文件”)。需要再次执行.read()以再次打开文件并再次读取内容。