我正在研究如何使用 Pandas 读取 xlsx 文件,该文件托管在 SharePoint 上。这些内容,当通过 reponse.text 显示时,是字符串形式,但是文件的二进制表示。
<块引用>PK╚╝! #h�╔�╔ �= �╔[Content_Types].xml ��╔(� ╗
��[O�@��M�;���1��G% {���.Z�E��覧ゝ�I{��5�╗"j����"╚W�J �我!^_Z�"CR�R�;(�
P ��g��U ̸�a!�D�FJ,�`�>�㕱�V?Ɖ
��� �n�}%K��������Pv���k'#�Dv��W� �B0�T�F��U? -?�*_�-K�"� � dM�fb|="�BndF0x�3UE�Nu�
���P�lO�Y��#������,g�K#�}�����E=�tD�U�}���O�Q�[��F�| Ix��╚���[H2{�H+╚x�k�]dn�a�╔yZ"N�jͺ�"ih�s�Gn� 我想知道如何将这种格式读入内存,以便我可以用它调用 pd.read_excel。 我尝试以这种方式使用 urllib 和 openpyxl: 但是我从 urllib 请求模块收到错误 400 Bad Request。 网址如下所示: import openpyxl as excel
import pandas as pd
from io import BytesIO
import urllib
req = urllib.request.Request(url=url, data=payload, headers=headers)
with urllib.request.urlopen(url=req) as reponse:
rsp = reponse.read()
excel.load_workbook(filename=rsp)
答案 0 :(得分:0)
我找到了一种方法。关键是在将文件传递给pandas之前进行回溯。
file_ext = self.file_name.split('.')[-1]
if file_ext == 'xlsx':
import pandas as pd
from io import BytesIO
xl = bytes(memoryview(response.content))
memfile =BytesIO()
memfile.write(xl)
memfile.seek(0)
df = pd.io.excel.read_excel(memfile, engine='openpyxl')
print(df.head(10))