【问题标题】:Able to read table header, but not table content能读表头,但不能读表内容
【发布时间】:2018-04-20 15:40:11
【问题描述】:

这就是我想要做的——真的很简单。我有一个包含数据的 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

【问题讨论】:

    标签: python pdf tabula


    【解决方案1】:

    愚蠢的我——我忽略了所有的研究,直到最后阅读了 tabula-py 文档。

    结果与 tabula-java 不同。或者,流选项似乎不是 正常工作 tabula-py 设置猜测选项默认为真,对于 初学者。已知会在流选项之间产生冲突。如果 你觉得你的结果有些奇怪,请设置guess=False。

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

    【讨论】:

    • 总是使用guess=False 选项有缺点吗?
    • 这对我有用一次。但是现在,使用另一个表,我又遇到了这个问题,更改 guess 选项不起作用。我正在使用的 PDF 是正确应用 OCR 的优质 PDF。我不知道如何解决这个问题。有什么猜测吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 2020-05-24
    相关资源
    最近更新 更多