Python - 在字符串之后和括号之间获取文本

时间:2017-08-29 17:46:36

标签: python regex parsing

我有一个我想解析的输出。它不完全是JSON,因此通过JSON解析不起作用。这是输出的片段

...    
"details": {
        "groups": [
          "group1",
          "group2",
          "group3",
          "group4"
        ]
      },
      "all_Details": [
        "ALL"
      ],
...

我要做的是获取“groups”之后和[]之间的输出。所以我想解析出来:

[ “组1”, “组2”, “组3”, “组4”]

不是最好的正则表达式,所以想看看我将如何解析这个。谢谢。

更新

尝试通过JSON解析。这是JSON输出:

{
  "details": {
    "groups": [
        "group1",
        "group2",
        "group3",
      ]
  },
  "team": "team1",
  "createdat": "2017-08-11",
  "owningteam": "team2",
}

以下是我在Python中的内容:

parsed_json = json.loads(output)
print(parsed_json['details']['groups])

我收到以下错误:

TypeError:字符串索引必须是整数

2 个答案:

答案 0 :(得分:1)

假设您发布的是一个字符串,看起来它可能只是被评估为python对象,如下所示:

import ast
d = ast.literal_eval('{"details": { "groups": [ "group1", "group2", "group3", "group4" ] }, "all_Details": [ "ALL" ]}')

然后得到你想要的东西,你可以这样做:

d['details']['groups']

答案 1 :(得分:-2)

如果您希望groups括号之间的输出值如下:

"group1","group2","group3","group4"
你可以这样做:

data = ", ".join( repr(e) for e in groups ), 

这里的group是json数据的值。