Python 从嵌套字典中检索值列表

Python 从嵌套字典中检索值列表,python,list,dictionary,Python,List,Dictionary,我正在使用Python 2.7 我有以下清单: mylist = [ {u'id': 5650, u'children': [ {u'id': 4635}, {u'id': 5648} ]}, {u'id': 67, u'children': [

我正在使用Python 2.7

我有以下清单:

mylist = [
       {u'id': 5650,
               u'children': [
                     {u'id': 4635},
                     {u'id': 5648}
                            ]},
       {u'id': 67,
               u'children': [
                     {u'id': 77}
                            ]}
      ]
我想检索所有子ID的列表:

[4635, 5648, 77]
我试过:

childrenids = [elem['children'][0]['id'] for elem in mylist]
但这只给了我每个孩子的第一个:

[4635, 77]
我不可能把它们都弄到手


有什么线索吗?

childrenids=[elem['children'][0]['id']mylist中的elem]

为什么
[0]
?这将只获取第一个子项的值


相反,请尝试使用
childrenids=[child['id']作为mylist中的elem,作为elem['children']]
childrenids=[elem['children'][0]['id']作为mylist中的elem]

为什么
[0]
?这将只获取第一个子项的值


相反,请尝试
childrenids=[child['id']for elem in mylist for elem for child in elem['children']]

我的解决方案遍历列表中的元素(假设每个元素都是有效的字典),并根据“id”和“children”命名约定检查每个元素的类型

def extract_id_values(mylist):
  ids_to_return_list = []

  for element in mylist:
      for key, value in element.items():
          if 'id' == key:
            ids_to_return_list.append(value)
          if 'children' == key:
            for children_elem in value:
              if 'id' in children_elem:
                ids_to_return_list.append(children_elem['id'])
  return ids_to_return_list

我的解决方案遍历列表中的元素(假设每个元素都是有效的字典),并根据“id”和“children”命名约定检查每个元素的类型

def extract_id_values(mylist):
  ids_to_return_list = []

  for element in mylist:
      for key, value in element.items():
          if 'id' == key:
            ids_to_return_list.append(value)
          if 'children' == key:
            for children_elem in value:
              if 'id' in children_elem:
                ids_to_return_list.append(children_elem['id'])
  return ids_to_return_list

@彼得伍德OP有目录列表,所以没有重复的键。@彼得伍德OP有目录列表,所以没有重复的键。