如何用Python将请求返回的二进制Blob内容转换为docx文件?
直接保存二进制Blob为可正常使用的DOCX文件
不需要额外的Python包,核心逻辑是直接将获取到的二进制内容以.docx扩展名保存——因为数据库中存储的Blob本身就是标准的DOCX二进制格式(DOCX本质是包含XML文件的ZIP压缩包),你之前存成.bin只是扩展名错误,导致系统无法识别为DOCX文件。
正确代码示例
import requests # 替换为你的目标接口URL target_url = "你的Blob获取接口地址" response = requests.get(target_url) # 先确认请求成功 if response.status_code == 200: # 以二进制写入模式保存为docx文件 with open("saved_document.docx", "wb") as docx_file: docx_file.write(response.content) print("DOCX文件已成功保存,可直接用Word打开") else: print(f"请求失败,状态码:{response.status_code}")
关键注意事项
- 不要覆盖
response.content:你代码里的r.content = b'SomeStuffThatLooksLikeXMLinfo'是错误操作,会覆盖接口返回的真实Blob数据,直接使用原始的response.content即可。 - 验证内容完整性:如果保存后的DOCX无法打开,说明接口返回的不是完整的DOCX二进制数据(比如返回的是解析后的XML文本而非原始Blob),需要检查接口是否正确返回了原始二进制流。
- 写入模式必须是
wb:wb表示二进制写入模式,确保不会因为编码问题破坏DOCX的二进制结构。
内容的提问来源于stack exchange,提问作者user164144
相关产品推荐
相关产品推荐

