我从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'}
等
尝试在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
但是,由于数据字段中有额外的分号,所以仅获取回溯错误(列表索引超出范围) 有没有办法做得更好
我将首先编写一个解析器,并为项读取此原始数据项,然后决定如何处理该项:
(1)数据字段-1 -&燃气轮机;第一项>;在dict和append中创建新条目
(3)数据字段-3 -&燃气轮机;下一项>;在条目处追加
(5)数据域-5; -&燃气轮机;下一项>;在条目处追加
(1)数据字段-1 -&燃气轮机;下一项=新行>;创建一个新条目并附加
也许这有帮助
相关问题 更多 >
编程相关推荐