从json输出中提取多个字段

时间:2016-05-31 15:16:53

标签: python json list-comprehension

嗨,大家好我很想在堆栈中提问,但我想知道删除'名称'的过程是什么?来自json输出的值我知道如何通过索引svn log --search your_comment_fragment 来获取各个名称,但我如何获得这两个名称

name = [groups['groups'][0]['name'] for groups in result]

Json输出:

from pyzabbix import ZabbixAPI

import json

z = ZabbixAPI(url='https://zabbix.server,user='xxxx',password='xxxx')
result = z.host.get(output='groupid',selectGroups='extend', filter={'host' : 'mailpphfprd01'})


name = [groups['groups'] for groups in result]

name 

必需的输出

[[{u'flags': u'0',
   u'groupid': u'110',
   u'internal': u'0',
   u'name': u'- GSOC - Systems'},
  {u'flags': u'0',
   u'groupid': u'313',
   u'internal': u'0',
   u'name': u'Applications - Email Digest'}]]

1 个答案:

答案 0 :(得分:1)

您应该可以使用list-comprehension

进行此操作
json_output = [
  [
    {
      "internal": "0",
      "flags": "0",
      "groupid": "110",
      "name": "- GSOC - Systems"
    },
    {
      "internal": "0",
      "flags": "0",
      "groupid": "313",
      "name": "Applications - Email Digest"
    }
  ]
]

names = [d['name'] for d in json_output[0]]

print(names)  # -> [u'- GSOC - Systems', u'Applications - Email Digest']