[英]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.