我从pdf中抓取了一些数据。它的数据几乎像 XML,看起来像这样
"(1) Data-field-1 (3) Data-field-3 (5) Data-field-5; (1) Data-field-1 (2) Data-field-2 (3) Data-field-3 (5) Data-field-5; ; (2) Data-field-2 (3) Data-field-3 (5) Data-field-5 (6) Data-field-6;"
等
因此,对于每个条目,数据字段都以 (x) 开头。通常,条目以分号 (;) 结尾,但数据字段中通常有分号,因此我不能将其用作分隔符。新记录开始的唯一指标是开始标签中的整数小于之前的整数。标签是从 1 到 6。我想尝试获取字典字典,因此看起来类似于 JSON,例如
{'Row1':{1 : 'Data-field-1', 3 : 'Data-field-3', 5 : 'Data-field-5'},'Row2': {1: 'Data-field-1', 2: 'Data-field-2', 3: 'Data-field-3' 5: 'Data-field-5'},Row3': { 2: 'Data-field-2' ,3: 'Data-field-3' ,5: 'Data-field-5',6: 'Data-field-6'}
,ETC
尝试在 python 中使用正则表达式来做到这一点,这是我匹配匹配的最后一段代码:
inner_dict={}
test=filter(None, re.split(";", match))
print test
for i,x in enumerate(test):
if i==0 :
inner_dict[1]=x
else:
y=re.findall('\((\d)\)',x)[0]
inner_dict[y]=re.findall('\(\d\)\s(.+)',x)[0]
outer_dict[n]=inner_dict
n+=1
但是由于数据字段中的额外分号而导致回溯错误(列表索引超出范围)关于如何做得更好的任何想法?