1

所以这就是我想要做的——真的很简单。我有一个包含数据的 pdf 文档,我想使用 python 提取它。这是在我试图从需要定期读取的固定模板中自动提取数据的上下文中。

我正在使用 tabula-py 包,并使用“read_pdf”函数读取数据。问题是它似乎只能读取我需要的部分表格……更具体地说,它只能读取表格标题。奇怪的是,如果我使用在线表格工具阅读表格,我不会遇到这个问题。

# Here is the python code to read table content
df = tb.read_pdf(path+name+'.pdf', encoding='latin-1', area=[416.543,25.398,434.903,582.318],spreadsheet=True,pages=2)

# Here is the tabula online tool script:
java -jar tabula-java.jar  -a 416.543,25.398,434.903,582.318 -p 2 "$1"

前者产量

«无»类型的对象

而后者产生:

1 2018 Peterbilt Tracteur routier 一些 VIN 号 230 000 $

在表的标题上运行相同的查询会产生所需的结果:

# Here is the python code to read table header
df = tb.read_pdf(path+name+'.pdf',encoding='latin-1',area=[397.418,24.633,417.308,583.083],spreadsheet=True,pages=2)

# Here is the tabula online tool script:
java -jar tabula-java.jar  -a 397.418,24.633,417.308,583.083 -p 2 "$1"

前者产量

空 DataFrame 列:[Item, Année, Marque, Carrosserie, No série, Valeur actuelle] 索引:[]

而后者产生

Item Année Marque Carrosserie No série Valeur actuelle

由于 tabula-py 只是 java 包的一个包装器,我原以为两者的行为方式完全相同。我错过了什么?

Windows 10 64 位
tabula-py v1.0.0
Java v8

4

1 回答 1

4

愚蠢的我 - 由于所有的研究,我都忽略了将 tabula-py 文档阅读到最后。

结果与 tabula-java 不同。或者,对于初学者来说,默认情况下,流选项似乎无法正常工作 tabula-py 设置猜测选项 True。已知会在流选项之间产生冲突。如果您对结果感到奇怪,请设置guess=False。

事实证明,这可能就是正在发生的事情。现在一切都像一个魅力。

于 2018-05-04T12:50:40.357 回答