我正在尝试用python解析API调用的结果。
{'data': [{'type': 'infra_process_running', 'name': 'Custom Plugin Alert - Stopped Running', 'enabled': True, 'filter': {'and': [{'is': {'entityName': 'SOMEHOSTNAME','SOMEHOSTNAME'}}]}, 'id': 123456, 'created_at_epoch_millis': 1513024072143, 'updated_at_epoch_millis': 1513024072176, 'policy_id': 127350, 'comparison': 'below', 'critical_threshold': {'value': 2, 'duration_minutes': 5}, 'process_filter': {'and': [{'is': {'commandLine': 'java'}}]}}], 'meta': {'limit': 50, 'offset': 0, 'total': 1}, 'links': {}}
EDIT:对不起,忘了说这是在python中对一个请求运行print的输出,这就是为什么它是单引号的,而不是像JSON那样的双引号
我想从这个请求中提取所有的'name‘和所有的'entityName’。我尝试过使用正则表达式来搜索它们,并将它们存储在列表中
list.append(re.search(r"', 'name': '(.*?)', '", stringInfJSON))
list.append(re.search(r"{'entityName': ['(.*?)']", stringInfJSON))
我想从这个请求中提取所有的'name‘和所有的'entityName’。
然后,我想将所有这些内容插入到excel电子表格中,格式如下
+---------------------------------------+---------------------+
| Somehostname(s) | Somehostname2 |
+---------------------------------------+---------------------+
| Custom Plugin Alert - Stopped Running | Blah Blah Blah Blah |
+---------------------------------------+---------------------+
发布于 2018-06-30 04:22:23
假设您正在获得JSON格式的API响应,您应该能够使用
my_dict = json.load([JSON variable])
for x in my_dict['data']:
list.append(x['name'])
第一行将把JSON转换成python dict,然后需要遍历它,因为JSON包含一个数组,每个元素都可能有一个name
值。您将需要在python文件中使用import json
。
为此,我不建议您尝试使用regex;没有理由将JSON响应转换为字符串。
要获取实体名称,可以使用相同的方法:
for x in my_dict['data']:
for y in x['filter']['and']:
list.append(y['is']['entityName']
https://stackoverflow.com/questions/51107648
复制相似问题