簡體   English   中英

從嵌套字典中檢索值列表

[英]Retrieve list of values from nested dictionaries

我正在使用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'] for elem in mylist]

為什么是[0] 這只會抓住第一個孩子的價值。

而是childrenids = [child['id'] for elem in mylist for child in elem['children']]嘗試childrenids = [child['id'] for elem in mylist 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM