我正在尝试解析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': {}}
编辑:抱歉忘了说这是在python中的请求上运行print的输出,这就是为什么它是单引号而不是像JSON那样的双引号的原因
我想从此请求中提取所有“名称”和所有“ entityName”。 我已经尝试过使用正则表达式来搜索那些内容并将其存储在列表中
list.append(re.search(r"', 'name': '(.*?)', '", stringInfJSON))
list.append(re.search(r"{'entityName': ['(.*?)']", stringInfJSON))
我想从此请求中提取所有“名称”和所有“ entityName”。
然后我想将所有这些内容以以下格式插入到Excel电子表格中
+---------------------------------------+---------------------+
| Somehostname(s) | Somehostname2 |
+---------------------------------------+---------------------+
| Custom Plugin Alert - Stopped Running | Blah Blah Blah Blah |
+---------------------------------------+---------------------+
答案 0 :(得分:0)
假设您以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
。
我不建议您尝试使用正则表达式;没有理由将JSON响应转换为字符串。
要获取实体名称,可以使用相同的方法:
for x in my_dict['data']:
for y in x['filter']['and']:
list.append(y['is']['entityName']