分解从 API 调用返回的字典列表



我们Zabbix环境的最新更新破坏了一些以前由比我更高级的人编写的脚本,我目前仍在尝试使用返回的值。

我从一个足够简单的 API 调用开始,它返回以下字典:

webscenario = {
u'httptestid': u'254', 
u'steps': [
{
u'query_fields': [],
u'name': u'GET Alert',
u'no': u'1',
u'url': u'http://{HOST.DNS}/{API}',
u'follow_redirects': u'1',
u'variables': []
u'required': u'aries',
u'posts': u'', 
u'retrieve_mode': u'0', 
u'httpstepid': u'700', 
u'headers': [], 
u'post_type': u'0', 
u'timeout': u'15s', 
u'status_codes': u'200',
u'httptestid': u'254'
}
], 
u'name': u'Alerts API',
u'headers': [
{
u'name': u'Content-Type', 
u'value': u'application/json'
}
]
}

目标是使用上述 API 调用中返回的数据重新生成自动更新推送的标头。

headers_dict = dict()
headers = webscenario.get("headers")
for h in str(headers).splitlines():
headers_dict.update({h.split(':')[1].strip(): h.split(':')[1].strip())})
print headers_dict

最初,这是写成headers.splitlines()的,并开始抛出一些错误(如AttributeError: 'list' object has no attribute 'splitlines'(。一些谷歌搜索,似乎添加字符串标识符解决了该异常。但是现在我遇到了标题的格式问题,我完全陷入了困境。

我得到的标题输出是列表字典(字典列表?

<type 'list'>: [{u'name': u'Content-Type', u'value': u'application/json'}]

我需要做的是构建一个字典

,如下所示:
{Content-Type: application/json}

撇开Unicode符号不谈,一旦我可以把它归结为我需要的,我就可以解决这个"问题"(如果它甚至是一个(。

我假设

formatted_headers = dict()
headers = webscenario.get("headers")
for header in headers:
formatted_headers[header['name']] = header['value']

足以实现您需要实现的目标,对吧?

最新更新