首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从JSON检索数据?

从JSON检索数据?
EN

Stack Overflow用户
提问于 2018-03-15 22:51:04
回答 2查看 62关注 0票数 0

我是python中的新手,需要获得同一个块的值fron值,这是JSON的一个示例:

代码语言:javascript
复制
{
  u'Name': u'test',
  u'ProjectPath': u'/data/compose/test_pz4u6zug8swd2isfkcrzh9kjl',
  u'ResourceControl': {
    u'ResourceId': u'test',
    u'UserAccesses': [

    ],
    u'AdministratorsOnly': True,
    u'TeamAccesses': [

    ],
    u'SubResourceIds': [

    ],
    u'Type': 6,
    u'Id': 8
  },
  u'EntryPoint': u'docker-compose.yml',
  u'Env': [

  ],
  u'SwarmId': u'pz4u6zug8swd2isfkcrzh9kjl',
  u'Id': u'test_pz4u6zug8swd2isfkcrzh9kjl'
},
{
  u'Name': u'ycf',
  u'ProjectPath': u'/data/compose/ycf_pz4u6zug8swd2isfkcrzh9kjl',
  u'ResourceControl': {
    u'ResourceId': u'ycf',
    u'UserAccesses': [

    ],
    u'AdministratorsOnly': True,
    u'TeamAccesses': [

    ],
    u'SubResourceIds': [

    ],
    u'Type': 6,
    u'Id': 5
  },
  u'EntryPoint': u'docker-compose.yml',
  u'Env': None,
  u'SwarmId': u'pz4u6zug8swd2isfkcrzh9kjl',
  u'Id': u'ycf_pz4u6zug8swd2isfkcrzh9kjl'
}

我需要从Id文件中得到Name的值,例如。我需要从Id (test_pz4u6zug8swd2isfkcrzh9kjl)的Name‘测试’中了解其价值,是可能的吗?

我从请求中获得这个JSON:

代码语言:javascript
复制
r_get = requests.get(http://www.example.com:9000/api/endpoints/1/stacks)
id_response = json.loads(r_get.content.decode('utf-8'))
print(id_response)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-15 22:57:18

您可以循环遍历所有记录,并查找Name与所需值匹配的第一种情况。

代码语言:javascript
复制
for element in id_response:
    if element[u'Name'] == u'test':
        my_id = element[u'Id']
        break
else:
    # will only get here if we never break from the loop
    raise ValueError('No element named "test"')

print(my_id)
票数 3
EN

Stack Overflow用户

发布于 2018-03-15 22:57:06

如果结果是字典列表,则可以使用理解重新排列数据:

代码语言:javascript
复制
id_for_name = {item[u'Name']: item[u'Id'] for item in id_response}

print(id_for_name)
# {u'test': u'test_pz4u6zug8swd2isfkcrzh9kjl', u'ycf': u'ycf_pz4u6zug8swd2isfkcrzh9kjl'}
print(id_for_name['test'])
# test_pz4u6zug8swd2isfkcrzh9kjl
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49310497

复制
相关文章

相似问题

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