我们的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'
)。搜索了一下,似乎添加了字符串标识符就解决了这个问题。但是现在我遇到了标题的格式化问题,我完全卡住了。
我得到的头的输出是list dictionary (dictionary list?):
<type 'list'>: [{u'name': u'Content-Type', u'value': u'application/json'}]
我需要做的是构建一个字典,如下所示:
{Content-Type: application/json}
抛开Unicode符号不谈,一旦我能找到我需要的东西,我就可以解决这个“问题”(如果它甚至是一个问题)。
https://stackoverflow.com/questions/50689146
复制相似问题