2017-08-08 84 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 - >下一個項目=新的生產線 - >創建一個新的條目,並追加......

也許這可以幫助...