Python,字典/列表搜索

Python,字典/列表搜索,python,list,dictionary,data-structures,Python,List,Dictionary,Data Structures,我目前从以下来源获得了以下数据集: x = list((object[u'Field'] for object in y)) 我的问题是我想提取区域值,但是这取决于,*u'@selected':u'true'*值的位置 我想返回第一个变量=EMEA 第二个是美洲 所以我可以搜索*u'@selected':u'true'*并将以下'Value'放入变量中,这可能吗 [{u'Option': [{u'@viewOrder': u'1', u'@id': u'291277', u'Value': u

我目前从以下来源获得了以下数据集:

x = list((object[u'Field'] for object in y))
我的问题是我想提取区域值,但是这取决于,*u'@selected':u'true'*值的位置

我想返回第一个变量=EMEA 第二个是美洲

所以我可以搜索*u'@selected':u'true'*并将以下'Value'放入变量中,这可能吗

[{u'Option': [{u'@viewOrder': u'1', u'@id': u'291277', u'Value': u'Americas'}, {u'@selected': u'true', u'@viewOrder': u'2', u'@id': u'291278', u'Value': u'EMEA'}, {u'@viewOrder': u'3', u'@id': u'291279', u'Value': u'APAC'}, {u'@viewOrder': u'4', u'@id': u'292560', u'Value': u'Middle East'}], u'@required': u'false', u'@editable': u'true', u'@multi-value': u'false', u'@field-type': u'dropdown', u'@data-type': u'option', u'@display-name': u'Region', u'@id': u'127596'}], 


[{u'Option': [{u'@selected': u'true', u'@viewOrder': u'1', u'@id': u'291277', u'Value': u'Americas'}, {u'@viewOrder': u'2', u'@id': u'291278', u'Value': u'EMEA'}, {u'@viewOrder': u'3', u'@id': u'291279', u'Value': u'APAC'}, {u'@viewOrder': u'4', u'@id': u'292560', u'Value': u'Middle East'}], u'@required': u'false', u'@editable': u'true', u'@multi-value': u'false', u'@field-type': u'dropdown', u'@data-type': u'option', u'@display-name': u'Region', u'@id': u'127596'}], 

假设这是您的数据:

data = [[{u'Option': [{u'@viewOrder': u'1', u'@id': u'291277', u'Value': u'Americas'},
                   {u'@selected': u'true', u'@viewOrder': u'2', u'@id': u'291278', u'Value': u'EMEA'},
                   {u'@viewOrder': u'3', u'@id': u'291279', u'Value': u'APAC'}, 
                   {u'@viewOrder': u'4', u'@id': u'292560', u'Value': u'Middle East'}],
       u'@required': u'false', u'@editable': u'true', u'@multi-value': u'false', 
       u'@field-type': u'dropdown', u'@data-type': u'option', u'@display-name': u'Region', u'@id': u'127596'}],


 [{u'Option': [{u'@selected': u'true', u'@viewOrder': u'1', u'@id': u'291277', u'Value': u'Americas'}, 
                   {u'@viewOrder': u'2', u'@id': u'291278', u'Value': u'EMEA'}, 
                   {u'@viewOrder': u'3', u'@id': u'291279', u'Value': u'APAC'},
                   {u'@viewOrder': u'4', u'@id': u'292560', u'Value': u'Middle East'}], 
       u'@required': u'false', u'@editable': u'true', u'@multi-value': u'false', 
       u'@field-type': u'dropdown', u'@data-type': u'option', u'@display-name': u'Region', u'@id': u'127596'}] 
      ]
一些循环和索引将提取所需的值:

res = []
for entry in data:
    for sub_entry in entry[0]['Option']:
        if '@selected' in sub_entry:
            res.append(sub_entry['Value'])
print(res)
输出:

['EMEA', 'Americas']

工作,非常感谢