如何在现有字典中添加新键并在python中从中派生嵌套字典?

问题描述 投票:0回答:1

我正在尝试在现有字典中添加新键以创建新的嵌套字典

下面是现有字典

I need to make a nested dictionary from the below dictionary
{'userId': 'thanks',
 'jobTitleName': 'Program Directory', 
 'firstName': 'Tom', 'lastName': 'Hanks', 
 'preferredFullName': 'Tom Hanks',
 'employeeCode': 'E3',
 'region': 'CA', 
 'phoneNumber': '+00408-2222222', 
 'emailAddress': '[email protected]', 
 'Full Name': 'TomHanks'}

这是我尝试过的:

key1=['userId','jobTitleName','firstName','lastName','employeeCode']
key2=['Full Name','phoneNumber','region','emailAddress']
jsonValue={
{'userId': 'thanks',
 'jobTitleName': 'Program Directory', 
 'firstName': 'Tom', 'lastName': 'Hanks', 
 'preferredFullName': 'Tom Hanks',
 'employeeCode': 'E3',
 'region': 'CA', 
 'phoneNumber': '+00408-2222222', 
 'emailAddress': '[email protected]', 
 'Full Name': 'TomHanks'}
}
empDetails={}
for k in key1:
    empDetails[k]=jsonValue[k]
print("Key1", empDetails)
for k2 in key2:
    empDetails['otherDetails'][k2]=jsonValue[k2]

但是它不起作用

预期:

现在我需要添加新的键作为'otherDetails',以按如下方式派生嵌套字典

{'userId': 'thanks',
 'jobTitleName': 'Program Directory', 
 'firstName': 'Tom', 'lastName': 'Hanks', 
 'preferredFullName': 'Tom Hanks',
 'employeeCode': 'E3',
 otherDetails{
    'region': 'CA', 
    'phoneNumber': '+00408-2222222', 
    'emailAddress': '[email protected]', 
    'Full Name': 'TomHanks'
 }
 }

是否有人可以提供正确的解决方案?谢谢

python-3.x dictionary
1个回答
0
投票
似乎您可以在新字典中插入新键otherDetails

d = { "userId": "thanks", "jobTitleName": "Program Directory", "firstName": "Tom", "lastName": "Hanks", "preferredFullName": "Tom Hanks", "employeeCode": "E3", "region": "CA", "phoneNumber": "+00408-2222222", "emailAddress": "[email protected]", "Full Name": "TomHanks", } to_insert = { "region": "CA", "phoneNumber": "+00408-2222222", "emailAddress": "[email protected]", "Full Name": "TomHanks", } d["otherDetails"] = to_insert print(d)

输出:

{'userId': 'thanks', 'jobTitleName': 'Program Directory', 'firstName': 'Tom', 'lastName': 'Hanks', 'preferredFullName': 'Tom Hanks', 'employeeCode': 'E3', 'region': 'CA', 'phoneNumber': '+00408-2222222', 'emailAddress': '[email protected]', 'Full Name': 'TomHanks', 'otherDetails': {'region': 'CA', 'phoneNumber': '+00408-2222222', 'emailAddress': '[email protected]', 'Full Name': 'TomHanks'}}

© www.soinside.com 2019 - 2024. All rights reserved.