我从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)开头。通常,条目以分号(;)结尾,但数据字段中通常有分号,因此我不能将其用作分隔符。新记录已启动的唯一指示符是start标记中的整数小于之前的整数。标签是从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'}
,等
尝试在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
但由于数据字段中存在额外的分号,因此只是追溯错误(列表索引超出范围) 有关如何做得更好的任何想法?
答案 0 :(得分:0)
我会首先编写一个解析器并读取该项的原始数据项,然后我将决定如何处理该项:
(1)数据字段-1 - >第一项 - >在dict中创建新条目并附加...
(3)数据字段-3 - >下一项 - >在条目中附加
(5)数据字段-5; - >下一项 - >在条目中附加
(1)数据字段-1 - >下一项=新行 - >创建一个新条目并追加......
也许这有帮助...