快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

python提取pdf中的表格数据存进数据库

请联系QQ:1793040 索取软件

  提取pdf中的测试步骤表数据并将其存储在数据库中

导入 pdfplumber,时间

来自.models import ScenarioInfo 这是模型中引入的ScenarioInfo表

pdfplumber.open(r " C:\\\\用户\\\\ hisoft \\\\桌面\\\\(2019-09-25)_21460.pdf " )as pdf:

m = 0 测试步骤表的数量(由标头数量计算)

s = " \ lt;表\ gt; tbody \ gt; "

mjcd = "" 上一级菜单

for i in 范围(29,len(pdf.pages)): 从第30页获取表单数据

page = pdf.pages [i] 设置操作页面

n = 1 当前页面的第n个表

用于 page.extract_tables ():

k =

用于 in 范围(len(表)):

如果 str(表[

行]) == r " ["步骤","案例步骤","预期结果","测试信息","耗时(秒\\\\ n)","结果"] " : 这是基于表行的内容来确定是否它是新表的开始,因为标题内容是固定的>

if i == 29 and n == 1: 确定它是否是第30页的第一个表单

通过

其他 :

s + = " \ lt;/正文\ gt;/表\ gt; "

打印" i = " ,i)

print(" s =",s)

print(" mjcd =",mjcd)

m + = 1

ScenarioInfo.objects.create(test_steps = s,lrry = " 哈哈哈 " ,mjcd = mjcd) 保存在数据库中,s是缝合的表单字符串,富文本将识别表单标签显示

time.sleep(0.6

mjcd = ""

s = " \ lt;表\ gt; \ lt; tbody \ gt; "

for j in range(len (表[行])):

如果 j == 0: 确定它是否是当前行的第一列

s + = " \ lt; tr \ gt; \ lt; td \ gt; "

s + = 表[行] [j]

如果 j == 1: 要确定它是否是当前行的第二列,请取出上一级菜单,如果有多个上一级菜单,则仅采用第一个菜单

如果 k:

如果 len(表[row] [j].split(" 搜索并打开菜单:[ " ))\ gt; 1 :

mjcd = table [row] [j].split(" 搜索以打开菜单:[ " )[1].split(" ] " )[0]

k = 错误

如果 j == len(表[行])-1: 确定它是否是当前行的最后一列

s + = " \ lt;/td \ gt; \ lt;/tr \ gt; "

其他 :

s + = " \ lt;/td \ gt; \ lt; td \ gt; "

如果 i == len(pdf.pages)-1: 确定它是否是最后一页

如果 n == len(page.extract_tables()): 确定它是否为最后一个形式

for in range(len (表)):

如果 row == len(表格)-1: 确定它是否是当前表的最后一行

for j in range(len (表[行])):

如果 j == len(表[行])-1: 确定它是否是当前行的最后一列

s + = " \ lt;/正文\ gt;/表\ gt; "

打印" i = " ,i)

打印" end_s =: " ,s)

m + = 1

打印" m = " ,m)

打印" mjcd = " ,mjcd)

ScenarioInfo.objects.create(test_steps = s,lrry = " 哈哈哈 " ,mjcd = mjcd) 保存在数据库中

n + = 1

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1793040