python - 类型错误 : object of type '_io.BytesIO' has no len()

标签 python

这是我的代码,我试图在我的内存中下载一个 pdf url,然后尝试在第 3 方 python 包 (PYmuPDF) 中打开它。但它显示了这个错误。如何解决?

我的代码

    URL = "https://d2u493yfhe2l4v.cloudfront.net/1922/signed_contract/1922_signed_contract.pdf"
    res = urllib.request.urlopen(URL)
    p = BytesIO(res.read())
    doc = fitz.open("pdf", p)

在此之后它给出了这样的错误,但根据 fitz 的文档,我认为我已经尝试过了! PymuPDF 关于打开内存文件的文档 https://pymupdf.readthedocs.io/en/latest/document/

>>> # from memory
>>> doc = fitz.open("pdf", mem_area)
>>> doc = fitz.open(None, mem_area, "pdf")
>>> doc = fitz.open(stream = mem_area, filetype = "pdf")

最佳答案

升级您的 PYmuPDF 版本。

您错过了文档中最重要的部分: --> “在 1.14.13 版中更改:现在也支持 io.BytesIO”

或者,以下应该有效:

    URL = "https://d2u493yfhe2l4v.cloudfront.net/1922/signed_contract/1922_signed_contract.pdf"
    res = urllib.request.urlopen(URL)
    p = bytearray(res.read())
    doc = fitz.open("pdf", p)

关于python - 类型错误 : object of type '_io.BytesIO' has no len(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54463518/

相关文章:

python - python 如何为 GraphViz 编写一个点文件,要求将某些边染成红色?

python - 用pip安装文件和复制粘贴有什么区别

python - 如何将带撇号的字符串对象传递给 POST 调用

python - 映射 obj.method({argument :value}) to obj. argument(value)

python - 使用 Python 将 CSV 输出导出并映射到 MySQL 表

python - 提供不同线性代数后端的架构

python - 在 Spark 本地模式下包含包

python - 如何在没有 numpy 和 scipy 的情况下找到特征向量和特征值?

python - 在 Pandas 数据帧上应用 Savitzky-Golay 过滤器

python - 测试 Django 查询集 : self. assertListEqual vs self.assertQuerysetEqual