2017-08-08 85 views
0

我已经从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;"准xml提取2个开始标记的文本

因此,对于每个条目,数据字段以(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'}

尝试使用正则表达式在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

我会先写一个解析器和阅读项目这些原始数据项,然后我会决定如何与项目办:

(1)数据字段1 - >第一项 - >创建在字典新条目,并追加...

(3)数据字段-3- - >下一个项目 - >附加在条目

(5)数据字段-5; - >下一个项目 - >添加在入境

(1)数据字段1 - >下一个项目=新的生产线 - >创建一个新的条目,并追加......

也许这可以帮助...