首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >分解API调用返回的字典列表

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

Stack Overflow用户
提问于 2018-06-05 05:38:54
回答 1查看 86关注 0票数 0

我们的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符号不谈,一旦我能找到我需要的东西,我就可以解决这个“问题”(如果它甚至是一个问题)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-05 06:39:39

我假设

formatted_headers = dict()
headers = webscenario.get("headers")

for header in headers:
    formatted_headers[header['name']] = header['value']

对你需要达到的目标来说已经足够了,对吧?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50689146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档