如何从列表中提取值并将其存储为字典(键值对)?
How to extract values from list and store it as dictionary(key-value pair)?
我需要从此字典列表中提取 2 个值并将其存储为键值对。
在这里我附上了示例数据。我需要从这个输入中提取“名称”和“服务”并将其存储为字典。其中“Name”为Key,对应的“Service”为其值。
输入:
response = {
'Roles': [
{
'Path': '/',
'Name': 'Heera',
'Age': '25',
'Policy': 'Policy1',
'Start_Month': 'January',
'PolicyDocument':
{
'Date': '2012-10-17',
'Statement': [
{
'id': '',
'RoleStatus': 'New_Joinee',
'RoleType': {
'Service': 'Service1'
},
'Action': ''
}
]
},
'Duration': 3600
},
{
'Path': '/',
'Name': 'Prem',
'Age': '40',
'Policy': 'Policy2',
'Start_Month': 'April',
'PolicyDocument':
{
'Date': '2018-11-27',
'Statement': [
{
'id': '',
'RoleStatus': 'Senior',
'RoleType': {
'Service': ''
},
'Action': ''
}
]
},
'Duration': 2600
},
]
}
从这个输入,我需要输出为字典类型。
输出格式: { 名称:服务}
输出:
{ "Heera":"Service1","Prem" : " "}
我的尝试:
Role_name =[]
response = {#INPUT WHICH I SPECIFIED ABOVE#}
roles = response['Roles']
for role in roles:
Role_name.append(role['Name'])
print(Role_name)
我需要将名称与其对应的服务配对。任何帮助都会非常可观。
提前致谢。
你只需要这样做:
liste = []
for role in response['Roles']:
liste.append(
{
role['Name']:role['PolicyDocument']['Statement'][0]['RoleType']['Service'],
}
)
print(liste)
您的输入数据的结构似乎有点奇怪,我不确定 )
在接下来的几个月里做了什么,因为它们使事情变得无效,但这是一个工作脚本,假设您从中删除了括号您的意见。
response = {
'Roles': [
{
'Path': '/',
'Name': 'Heera',
'Age': '25',
'Policy': 'Policy1',
'Start_Month': 'January',
'PolicyDocument':
{
'Date': '2012-10-17',
'Statement': [
{
'id': '',
'RoleStatus': 'New_Joinee',
'RoleType': {
'Service': 'Service1'
},
'Action': ''
}
]
},
'Duration': 3600
},
{
'Path': '/',
'Name': 'Prem',
'Age': '40',
'Policy': 'Policy2',
'Start_Month': 'April',
'PolicyDocument':
{
'Date': '2018-11-27',
'Statement': [
{
'id': '',
'RoleStatus': 'Senior',
'RoleType': {
'Service': ''
},
'Action': ''
}
]
},
'Duration': 2600
},
]
}
output = {}
for i in response['Roles']:
output[i['Name']] = i['PolicyDocument']['Statement'][0]['RoleType']['Service']
print(output)
你只需要写一个很长的行就可以到达键'Service'。
你在行 Start_Month': 'January') and 'Start_Month': 'April')。你不能有一个未闭合的括号。
修复它并 运行 以下内容。
这是代码:
output_dict = {}
for r in response['Roles']:
output_dict[r["Name"]] = r['PolicyDocument']['Statement'][0]['RoleType']['Service']
print(output_dict)
输出:
{'Heera': 'Service1', 'Prem': ''}
这应该会在名为 role_services:
的变量中提供您想要的内容
role_services = {}
for role in response['Roles']:
for st in role['PolicyDocument']['Statement']:
role_services[role['Name']] = st['RoleType']['Service']
它将确保您将遍历该数据结构中的所有语句,但请注意,如果键值对存在于多个条目中,您将在遍历响应时覆盖它们!
A reference on for loops 这可能会有所帮助,说明在其中使用 if
语句可以帮助您扩展它以检查项目是否已经存在!
希望对您有所帮助
我需要从此字典列表中提取 2 个值并将其存储为键值对。 在这里我附上了示例数据。我需要从这个输入中提取“名称”和“服务”并将其存储为字典。其中“Name”为Key,对应的“Service”为其值。
输入:
response = {
'Roles': [
{
'Path': '/',
'Name': 'Heera',
'Age': '25',
'Policy': 'Policy1',
'Start_Month': 'January',
'PolicyDocument':
{
'Date': '2012-10-17',
'Statement': [
{
'id': '',
'RoleStatus': 'New_Joinee',
'RoleType': {
'Service': 'Service1'
},
'Action': ''
}
]
},
'Duration': 3600
},
{
'Path': '/',
'Name': 'Prem',
'Age': '40',
'Policy': 'Policy2',
'Start_Month': 'April',
'PolicyDocument':
{
'Date': '2018-11-27',
'Statement': [
{
'id': '',
'RoleStatus': 'Senior',
'RoleType': {
'Service': ''
},
'Action': ''
}
]
},
'Duration': 2600
},
]
}
从这个输入,我需要输出为字典类型。
输出格式: { 名称:服务}
输出:
{ "Heera":"Service1","Prem" : " "}
我的尝试:
Role_name =[]
response = {#INPUT WHICH I SPECIFIED ABOVE#}
roles = response['Roles']
for role in roles:
Role_name.append(role['Name'])
print(Role_name)
我需要将名称与其对应的服务配对。任何帮助都会非常可观。
提前致谢。
你只需要这样做:
liste = []
for role in response['Roles']:
liste.append(
{
role['Name']:role['PolicyDocument']['Statement'][0]['RoleType']['Service'],
}
)
print(liste)
您的输入数据的结构似乎有点奇怪,我不确定 )
在接下来的几个月里做了什么,因为它们使事情变得无效,但这是一个工作脚本,假设您从中删除了括号您的意见。
response = {
'Roles': [
{
'Path': '/',
'Name': 'Heera',
'Age': '25',
'Policy': 'Policy1',
'Start_Month': 'January',
'PolicyDocument':
{
'Date': '2012-10-17',
'Statement': [
{
'id': '',
'RoleStatus': 'New_Joinee',
'RoleType': {
'Service': 'Service1'
},
'Action': ''
}
]
},
'Duration': 3600
},
{
'Path': '/',
'Name': 'Prem',
'Age': '40',
'Policy': 'Policy2',
'Start_Month': 'April',
'PolicyDocument':
{
'Date': '2018-11-27',
'Statement': [
{
'id': '',
'RoleStatus': 'Senior',
'RoleType': {
'Service': ''
},
'Action': ''
}
]
},
'Duration': 2600
},
]
}
output = {}
for i in response['Roles']:
output[i['Name']] = i['PolicyDocument']['Statement'][0]['RoleType']['Service']
print(output)
你只需要写一个很长的行就可以到达键'Service'。 你在行 Start_Month': 'January') and 'Start_Month': 'April')。你不能有一个未闭合的括号。 修复它并 运行 以下内容。
这是代码:
output_dict = {}
for r in response['Roles']:
output_dict[r["Name"]] = r['PolicyDocument']['Statement'][0]['RoleType']['Service']
print(output_dict)
输出:
{'Heera': 'Service1', 'Prem': ''}
这应该会在名为 role_services:
的变量中提供您想要的内容role_services = {}
for role in response['Roles']:
for st in role['PolicyDocument']['Statement']:
role_services[role['Name']] = st['RoleType']['Service']
它将确保您将遍历该数据结构中的所有语句,但请注意,如果键值对存在于多个条目中,您将在遍历响应时覆盖它们!
A reference on for loops 这可能会有所帮助,说明在其中使用 if
语句可以帮助您扩展它以检查项目是否已经存在!
希望对您有所帮助