在python中重复文本解析到dict

时间:2017-09-12 05:38:38

标签: python parsing dictionary

我有一个系统,它从命令行以下列格式返回输出。我试图解析这个并将其转换为python中的dict。分隔符是":"在整个命令中,我只是将文本拆分为" \ n"然后用"进一步拆分:"并且只是将它附加到一个字典,但如果键是唯一的,它可以正常工作但在这里输出代码块重复。所以不确定我应该解析谁并获得dict中的所有值。 这里作业直到长度是重复的代码块。可以在词典或列表中使用词典但不确定如何重复。

for d in res.split("\n"):
     r = d.split(':')
     if len(r) == 2:
        return_dict[r[0].strip()]=r[1].strip()
     else:
        continue

这里它将覆盖写入作业数据,并且只有最后的值。任何一点都会很有帮助。

第一个名字:约翰    姓:mathew      总计:10    最终费用:7000    时间:2017-09-12    结果:通过

  jobs pending   : 2
  jobs completed  : 4

        job        : 0
        ID              : 42

              name         : filter_pre
              type    : zzsbcfdcd
              length       : 750

              name         : gasVacume
              type    : adfadfadkfj
              length       : 8567

        job        : 100
        ID              : 43

              name         : filter
              type    : adfadf
              length       : 800


        job       : 100
        ID              : 15

              name         : csprt
              type  : adfa
              length      : 1000

1 个答案:

答案 0 :(得分:0)

如果您想保留重复的密钥,那么您应该创建一个字典列表。使用下面给出的代码更改您的代码。

final_list = []
for d in res.split("\n"):
     return_dict = {}
     r = d.split(':')
     if len(r) == 2:
        return_dict[r[0].strip()]=r[1].strip()
        final_list.append(return_dict)
     else:
        continue
print final_list