Python 如何从字典列表中获取值为此创建函数
我有一本字典,它有一个字典列表Python 如何从字典列表中获取值为此创建函数,python,dictionary,Python,Dictionary,我有一本字典,它有一个字典列表 字典列表有另一个字典列表 我需要提取这些值并将其附加到列表中 我需要写一个函数。如果子项具有名称附加到父项列表,则字典传递函数的任何列表都将创建一个输出,如下所示 a = [{"id": "1", "Area": [{"id": "2", "name": "Clinical"},
- 字典列表有另一个字典列表
- 我需要提取这些值并将其附加到列表中
名称
附加到父项列表,则字典传递函数的任何列表都将创建一个输出,如下所示
a = [{"id": "1", "Area": [{"id": "2", "name": "Clinical"},
{"id": "23", "name": "Delivery"}]},
{"id": "2", "Area": [{"id": "2", "name": "Clinical"},
{"id": "23", "name": "Delivery"}]}]
预期输出:
[{"id": "1", "Area": ["Clinical", "Delivery"]},
{"id": "2", "Area": ["Clinical", "Delivery"]}]
代码如下
result = []
temp = {}
for i in range(0,len(a)):
templist = []
b = a[i]['Area'][i]['name']
c = a[i]['id']
temp['id'] = c
templist.append(b)
temp['Area'] = templist
result.append(temp)
print (result)
我的输出未提取并放入列表?以下是一个可能的解决方案:
result = [{'id': d['id'], 'Area': [nd['name'] for nd in d['Area']]} for d in a]
下面是一个关于口述和列表理解的解决方案
a=[{ "id":"1", "Area":[ { "id":"2", "name":"Clinical" },
{ "id":"23", "name":"Delivery" }], },
{ "id":"2", "Area":[ { "id":"2", "name":"Clinical" },
{ "id":"23", "name":"Delivery" }] } ]
res = dict(d, Area=[d2['name'] for d2 in d['Area']]) for d in a]
print(res)
输出
[{'id': '1', 'Area': ['Clinical', 'Delivery']},
{'id': '2', 'Area': ['Clinical', 'Delivery']}]
您将temp置于for循环之外,因此在循环期间不会重置temp。更改
id
的值时,id
的值将全部更改
result = []
for i in range(0,len(a)):
temp = {}
templist = []
b = a[i]['Area'][i]['name']
c = a[i]['id']
temp['id'] = c
templist.append(b)
temp['Area'] = templist
result.append(temp)
print (result)
这回答了你的问题吗?如果
a={“id”:“1”,“Area”:[{“id”:“2”,“name”:“Clinical”},{“id”:“23”,“name”:“Delivery”},},{“id”:“2”,“Area”:[{“id”:“2”,“name”:“Clinical”},{“id”:“23”,“name”:“Delivery”}
如果字典只对两者起作用,因为对于a中的i:将进入循环。但yur代码如何工作良好?如果a={“id”:“1”,“区域”:[{“id”:“2”,“名称”:“临床”},{“id”:“23”,“名称”:“交付”},},{“id”:“2”,“区域”:[{“id”:“2”,“名称”:“临床”},{“id”:“23”,“名称”:“交付”}意思是说只有字典而不是字典列表