python - 如何将 MIME 64 文档转换为字符串?
问题描述
我正在从返回具有以下结构的 JSON 对象的 API 中检索数据:
{
"status":"OK",
"text":{
"doc_id":647508,
"bill_id":502329,
"date":"2012-05-23",
"type":"Enrolled",
"mime":"application/rtf",
"doc":"MIME 64 Encoded Document”
}
}
其中编码文档是 PDF 文件。这是我正在使用的 PDF 示例:https ://legiscan.com/WA/text/HB1531/id/1473804/Washington-2017-HB1531-Introduced.pdf 。我正在尝试将编码文件读入字符串对象。到目前为止,我已经能够通过将响应转换为字节然后读取 pdf 来做到这一点:
import PyPDF2
import base64
with open("sample.pdf", "wb") as f:
inp_str = response.json()['text']['doc'].encode('utf-8')
f.write(base64.b64decode(inp_str))
with open('sample.pdf', "rb") as f:
pdf = PyPDF2.PdfFileReader(f)
感觉这不是处理多个文档的一种非常有效的方式。我尝试了一个相关的问题(是否可以将 pdf 字节直接输入 PyPDF2 而不是先制作 PDF 文件):
read_pdf = PyPDF2.PdfFileReader(io.BytesIO(response.json()['text']['doc'].encode()))
但我总是得到错误PdfReadError: Could not read malformed PDF file
有没有办法做到这一点?