我如何访问本身是另一个字典值的列表中键的所有值?
How do i access all values of keys inside a list which itself is a value of another dictionary?
dict = {key1:"value", key2:[{id:"value21", name:"value31" }, {id:"value22",name:"value32"},{id: "899",name:"values"}], key3:"value3"}
我需要提取名称的所有值
首先需要正确格式化问题,因为键是字符串。
# make sure keys are strings
key1 = 'a'
key2 = 'b'
key3 = 'c'
name = 'name'
# make a valid dictionary
d = {key1:"value",
key2:[{'id':"value21", name:"value31" }, {'id':"value22",name:"value32"},{'id': "899",name:"values"}],
key3:"value3"}
# this is a list
result = d[key2]
# inspect list
for i in result:
if name in i.keys():
print (i[name])
returns这个:
value31
value32
values
你可以试试:
dict = {"key1":"value", "key2":[{"id":"value21", "name":"value31" }, {"id":"value22","name":"value32"},{"id": "899","name":"values"}], "key3":"value3"}
for data in dict["key2"]:
if "name" in data:
print(data["name"])
输出
value31
value32
values
dict
和 id
是保留的,所以我将它们更改为 dct
和 'id'
:
dct = {'key1':"value",'key2':[{'id':"value21", 'name':"value31" },{'id':"value22",'name':"value32"},{'id': "899",'name':"values"}],'key3':"value3"}
我还将键更改为字符串,否则 python 需要一个变量名,我认为您想迭代字典 w/o 提前知道键。
- 迭代字典值并从列表中的嵌套字典中提取名称:
all_names = []
for value in dct.values():
if isinstance(value, list):
for sub_dct in value:
try:
all_names.append(sub_dct['name'])
except KeyError:
pass
print(all_names)
如果字典是给定的格式,
可以使用下面的代码
dictor = {'key1':"value", 'key2':[{'id':"value21", 'name':"value31" }, {'id':"value22",'name':"value32"},{'id': "899",'name':"values"}], 'key3':"value3"}
获取名字的逻辑是:
def GetValues(dictionary):
name_data = []
for i in dictor.keys():
if type(dictor[i]) is list:
for i in dictor[i]:
name_data.append(i['name'])
return name_data
print(GetValues(dictor))
将得到输出为
['value31', 'value32', 'values']
dict = {key1:"value", key2:[{id:"value21", name:"value31" }, {id:"value22",name:"value32"},{id: "899",name:"values"}], key3:"value3"}
我需要提取名称的所有值
首先需要正确格式化问题,因为键是字符串。
# make sure keys are strings
key1 = 'a'
key2 = 'b'
key3 = 'c'
name = 'name'
# make a valid dictionary
d = {key1:"value",
key2:[{'id':"value21", name:"value31" }, {'id':"value22",name:"value32"},{'id': "899",name:"values"}],
key3:"value3"}
# this is a list
result = d[key2]
# inspect list
for i in result:
if name in i.keys():
print (i[name])
returns这个:
value31
value32
values
你可以试试:
dict = {"key1":"value", "key2":[{"id":"value21", "name":"value31" }, {"id":"value22","name":"value32"},{"id": "899","name":"values"}], "key3":"value3"}
for data in dict["key2"]:
if "name" in data:
print(data["name"])
输出
value31
value32
values
dict
和id
是保留的,所以我将它们更改为dct
和'id'
:
dct = {'key1':"value",'key2':[{'id':"value21", 'name':"value31" },{'id':"value22",'name':"value32"},{'id': "899",'name':"values"}],'key3':"value3"}
我还将键更改为字符串,否则 python 需要一个变量名,我认为您想迭代字典 w/o 提前知道键。
- 迭代字典值并从列表中的嵌套字典中提取名称:
all_names = []
for value in dct.values():
if isinstance(value, list):
for sub_dct in value:
try:
all_names.append(sub_dct['name'])
except KeyError:
pass
print(all_names)
如果字典是给定的格式, 可以使用下面的代码
dictor = {'key1':"value", 'key2':[{'id':"value21", 'name':"value31" }, {'id':"value22",'name':"value32"},{'id': "899",'name':"values"}], 'key3':"value3"}
获取名字的逻辑是:
def GetValues(dictionary):
name_data = []
for i in dictor.keys():
if type(dictor[i]) is list:
for i in dictor[i]:
name_data.append(i['name'])
return name_data
print(GetValues(dictor))
将得到输出为
['value31', 'value32', 'values']