如何使用Microsoft Graph REST API正确读取OneDrive中的docx文件
问题说明与解决方法
你拿到的无法直接阅读的返回内容属于正常现象:docx本身是二进制压缩格式,直接打印下载接口返回的原始字节流本身就无法被人类直接阅读,不属于接口调用错误,你可以根据使用需求选择对应处理方案:
- 若需要保存为本地可正常打开的docx文件:直接将返回的二进制流写入后缀为
.docx的本地文件即可,Python示例代码如下:
# response为调用下载接口返回的响应对象 with open("目标文件.docx", "wb") as f: f.write(response.content)
写入完成后直接打开本地文件即可正常查看内容。
- 若需要直接读取文档内的文本内容,无需保存到本地,可选择以下两种方案:
- 调用Graph API格式转换接口直接获取纯文本,请求地址格式为
GET /me/drive/items/{你的文件ID}/content?format=text,该接口会直接返回docx文件解析后的纯文本内容,可直接读取。 - 若已经拿到文件二进制流,可使用第三方解析库直接读取内容,Python示例依赖
python-docx库,代码如下:
- 调用Graph API格式转换接口直接获取纯文本,请求地址格式为
from io import BytesIO from docx import Document # 读取二进制流生成docx文档对象 doc = Document(BytesIO(response.content)) # 拼接所有段落文本 full_text = "\n".join([para.text for para in doc.paragraphs]) print(full_text)
注意:调用接口前请确认你申请的应用权限包含
Files.Read或Files.ReadWrite权限,同时检查接口返回的状态码为200,若返回4xx状态码需优先排查权限、文件ID参数是否正确。
内容的提问来源于stack exchange,提问作者vrund297
相关产品推荐
相关产品推荐

