在python中解析输出以计算出现次数

时间:2017-08-15 04:43:22

标签: python shell parsing

我有一个python脚本,它生成一个curl命令并将输出读入一个名为output的变量

输出与此类似:

"endpoint1: {
    "[service1]endpoint": {
    },
    "[service1]endpoint": {
    },
    "[service2]endpoint": {
    },
    "[service2]endpoint": {
    }
  }
"endpoint2": {
    "[service1]endpoint": {
    }
  },

我需要做的是解析此输出以计算[]之间的唯一字符串并打印出事件。所以像这样:

service1 3 
service2 2

关于我如何做这件事的任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

如果您的输入无效JSON,请使用以下方法与collections.Counter对象和re.findall()函数:

result = collections.Counter(re.findall(r'\[([^]]+)\]', output))
print(result)

输出:

Counter({'service1': 3, 'service2': 2})