不显示提取的数据



我有一个问题。目前,我正在研究从pdf发票中提取数据的项目。我面临一个关于数据提取的问题。下面的代码用于提取数据。

import PyPDF2
pdfreader= PyPDF2.PdfFileReader("G:\RPA_testing\PO_450012345.pdf")
page = pdfreader.getPage(0)
content = page.extractText()
print(content)

输出:

LZE Packaging
Ludwig strasse 23, 44560, Germany
Internet : www.lze.com Email: info@lze.com
PHONE    : +8801723123456
Date
12.08.2021
DEF INDUSTRY LIMITED
fedrichschafen strasse 102, 66890, Germany
PO
L-123456
Order Responsibility : Martin 
Email: martin@lze.com
SL. No
QTY
Unit 
Price
01.
2560
1.95

下一步,我必须提取特定的信息。我已经为此写了一个代码。但这行不通。有人能帮忙找到解决办法吗?

i=0
for row in content.split('n'):
line=content.split('n')
if "LZE Packaging" in content:
company = "LZE Packaging"
print(company)    
if row.startswith('PO'):
order_number = line[i+0]
print(order_number)
if row.startswith('Date'):
Order_Date = line[i+0]
print(Order_Date)        
if row.startswith('QTY'):
quantity = line[i+3]
print(quantity) 
if row.startswith('Unit'):
unit_price = line[i+3]
print(unit_price)

没有得到任何输出。我知道我做错了什么。但是我找不出来。我的编码的问题是什么?无论如何,我需要下面的结果。

订单号:l - 123456订购日期:12.08.2021数量:2560单价:1.95

问候,Ekram

您的索引逻辑是关闭的,并且您从不增加i。另外,我们也不清楚if的第一个条件是什么。试试这个:

rows = content.split('n')
company = rows[0]
print(company) 
for i, row in enumerate(rows):  
if row.startswith('PO'):
order_number = rows[i+1]
print('order number:', order_number)
if row.startswith('Date'):
Order_Date = rows[i+1]
print('order date:', Order_Date)        
if row.startswith('QTY'):
quantity = rows[i+4]
print('quantity:', quantity) 
if row.startswith('Price'):
unit_price = rows[i+3]
print('unit price:', unit_price)
LZE Packaging
order date: 12.08.2021
order number: L-123456
quantity: 2560
unit price: 1.95

最新更新