问题标签 [tabula-py]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
142 浏览

python - 提高基于 Tabula 的 API 的响应时间

我开发了一个 API 来解析 PDF 中的数据。我使用 tabula-py 来开发这个 API,但在 localhost 上需要 4-5 秒,这要长得多。为了减少响应时间,我想使用 Azure-Function,但它比 localhost(9-10 秒)花费的时间要长得多,这是意料之中的。

为了部署它,我使用了 docker 镜像(Azure 的 ACR),我认为它可以帮助我提高可扩展性。任何人都可以建议我减少响应时间的可能方法吗?为什么在 Azure Function 中需要这么长的时间(这是意料之外的)?

PS Azure Function 与 AWS Lambda 类似。

0 投票
0 回答
111 浏览

python - Tabula-py 打印表格两次

我的代码正在运行,但打印到 csv 的表格打印了两次。可以做什么?

Excel 文件输出.csv

要转换的 PDF 图像

0 投票
1 回答
2970 浏览

python-3.x - Python tabula-py 无法导入名称包装器

这是我的代码:

但它给出了以下错误:

ImportError:无法导入名称“包装器”

我在 ubuntu 上尝试过,它在那里工作正常,但在 Windows 上我无法使用此代码,因为它总是给出上述错误。我使用以下命令安装了 tabula:

pip3 安装 tabula-py

0 投票
7 回答
16981 浏览

python - Python3:模块'tabula'没有属性'read_pdf'

一个.py程序可以工作,但完全相同的代码在作为 API 公开时不起作用。

该代码使用 Tabula 读取 pdf 并提供表格内容作为输出。

我试过了 :

我已经在运行 Ubuntu 的 AWS EC2 上安装了 tabula-py(不是 tabula)。

除了 read_pdf,我实际上还想转换为 CSV 并给出输出。但这也行不通。我得到相同的无属性错误,即module 'tabula' has no attribute 'convert_into

.py 文件和 API 文件(.py 也是如此)位于同一目录中,并由同一用户访问。

任何帮助将不胜感激。

编辑:我尝试从 API 运行与 OS 命令 ( os.system("python3 /home/ubuntu/flaskapp/tabler.py")) 相同的 python 文件。但它也没有奏效。

0 投票
1 回答
220 浏览

python - AWS Lambda OSError(30, '只读文件系统')

我正在尝试在 Python3.7 环境中的 AWS Lambda 上运行 tabula-py。代码非常简单:

如您所见,只有一行真正的代码具有 tabula.read_pdf()。我没有将文件写入任何地方,但我遇到了异常exception = OSError(30, 'Read-only file system')

仅供参考,表格详细信息可在此处获得

以下是我已经尝试过但没有奏效的方法:

  1. 验证 url 是否被正确读取。还通过代码中的 harc 编码链接进行了尝试。
  2. 在 Google、Stackoverflow & Co. 上进行检查,但没有找到可以解决此问题的方法。
  3. __pycache__在上传之前从 ZIP 中删除目录以更新代码。还确保 lambda 部署包中没有特定于操作系统的本地目录。

任何帮助将不胜感激。

0 投票
1 回答
558 浏览

python - Tabula-py 在 df 的一个特定列上返回“...”。其他一切似乎都有效,

预期行为:

阅读PDF,将所有表格数据提取到pandas df中。

实际行为:

可以很好地读取 PDF,提取大部分表格数据并将其保存到带有fp.write(df). 当我查看debugging.txt 或观看终端打印时,一列(名称)通常只返回'...'。

这就像 9/10 次返回...... - 有时只是第一页,但其余的都很好。有时他们都没事……这看起来很奇怪。

(我可能是个白痴,它可能会缩短它,因为它是迄今为止最长的字符串 2-3 倍。但我的 Google Fu 让我失望了)

示例输入(保护隐私的名称):

样本输入

样本输出:

代码:

0 投票
2 回答
246 浏览

python - Python tabula-py 的问题,错误“未知位置”

我使用 pip install 安装了 tabula-py,并且导入它没有错误。

我还确保将 JAVA 添加到 PATH(环境变量)。

但是,当我尝试运行时:

我收到错误: ImportError: cannot import name 'read_pdf' from 'tabula' (unknown location)

关于如何从这里开始的任何想法?

如果有帮助,我正在使用 Pycharm。

0 投票
2 回答
848 浏览

python - Tabula-py 跳过 PDF 的第一页并遗漏了一些表格数据

我正在使用 Python (3.8.1) 和 tabula-py (2.1.0) ( https://tabula-py.readthedocs.io/en/latest/tabula.html#tabula.io.build_options ) 从基于文本的 PDF 文件(每月 AWS 账单报告)。

下面显示了 PDF 文件的示例(第 1 页的底部和第 2 页的顶部)。

PDF 样本


Python 脚本如下所示:


生成以下输出:

我的想法是必须正确设置 area 选项,因为有时会省略顶部和最左侧的数据。是这样吗?如果是这样,您如何在 PDF 文件中找到所有表格数据的正确区域?

提前致谢。

0 投票
2 回答
174 浏览

python - 访问列表中的索引

我正在使用 tabula-py 从 pdf 文档中提取表格,如下所示:

这给出了这样的输出:

我想从这个 pdf 中得到什么从索引 2 开始。所以我运行

我得到一个看起来像这样的数据框:

在此处输入图像描述

现在,我想要从 2 到最后一个索引的索引。我做了

但我得到的是一个列表,而不是预期的数据框。

请问我解决这个问题吗?我需要从 2 开始的索引数据框。

0 投票
1 回答
580 浏览

python - 如何获取使用 tabula-py 提取的表格是哪个页面?

我目前正在使用tabula.read_pdf()从 pdf 中提取表格。但是,没有关于该表来自哪个页面的信息。一种方法是获取总页数并通过传入pages参数 for 来迭代每一页tabula.read_pdf()。然而,这是极其低效的。以下是一些解释,我在这里使用示例 pdf http://www.annualreports.com/HostedData/AnnualReports/PDF/NASDAQ_AMZN_2019.pdf