我遵循关于如何使用PyMuPDF从非结构化PDF中提取数据的指南。
https://www.analyticsvidhya.com/blog/2021/06/data-extraction-from-unstructured-pdfs/
我得到了一个AttributeError:当我遵循代码时,'NoneType‘对象没有属性'rect’错误,并且不确定发生了什么,因为我对Python是新手。
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-2-7f394b979351> in <module>
1 first_annots=[]
2
----> 3 rec=page1.first_annot.rect
4
5 rec
AttributeError: 'NoneType' object has no attribute 'rect'
---------------------------------------------------------------------------代码
import fitz
import pandas as pd
doc = fitz.open('Mansfield--70-21009048 - ConvertToExcel.pdf')
page1 = doc[0]
words = page1.get_text("words")
words[0]
first_annots=[]
rec=page1.first_annot.rect
rec
#Information of words in first object is stored in mywords
mywords = [w for w in words if fitz.Rect(w[:4]) in rec]
ann= make_text(mywords)
first_annots.append(ann)
def make_text(words):
line_dict = {}
words.sort(key=lambda w: w[0])
for w in words:
y1 = round(w[3], 1)
word = w[4]
line = line_dict.get(y1, [])
line.append(word)
line_dict[y1] = line
lines = list(line_dict.items())
lines.sort()
return "n".join([" ".join(line[1]) for line in lines])
print(rec)
print(first_annots)发布于 2022-11-02 14:17:36
此问题似乎与您使用的PDF文件有关。我不知道你是如何从你分享的指南中拿出同样的pdf的。
如果您保存了这些图像并将其导出为PDF,则可以预期以下2种行为:
在导出到pdf后,
page1.first_annot将返回None,因为示例图像中的边框似乎不起作用。如果您试图在导出的PDF中重新绘制那些边框,它将给出第一个边界box.page1.get_text("words"),在这种情况下它将无法工作。它将给出空的结果。我建议用你从谷歌那里得到的pdf样本来尝试一下,看看结果。
https://stackoverflow.com/questions/74269493
复制相似问题