我是python中的新手,需要获得同一个块的值fron值,这是JSON的一个示例:
{
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:
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)发布于 2018-03-15 22:57:18
您可以循环遍历所有记录,并查找Name与所需值匹配的第一种情况。
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)发布于 2018-03-15 22:57:06
如果结果是字典列表,则可以使用理解重新排列数据:
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_pz4u6zug8swd2isfkcrzh9kjlhttps://stackoverflow.com/questions/49310497
复制相似问题