迭代Python字典并删除与特定字符串匹配的特定元素

2024-10-04 05:28:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本像这样的字典-

mydict = {
           'users':
              [
                {
                  'userid': 'u1234'
                  'name': 'user1'
                },
                {
                  'userid': 'u0007'
                  'name': 'user2'
                }                 
              ]
            }

我想要一个功能,如果我传递userid=u1234,它应该遍历字典并从字典中删除该userid的详细信息,然后将输出写入文件


Tags: 文件name功能字典详细信息usersmydictuserid
3条回答

请尝试以下代码:-

for i,v in mydict.items():
    for a in v:
        if (a['userid'] == 'u1234'):
            v.remove(a)

然后使用以下代码写入文件:-

import json
with open('result.json', 'w') as fp:
    json.dump(mydict, fp)

此代码将处理您删除特定用户的请求:

for user in mydict['users']:
    if user['userid'] == 'u1234':
        mydict['users'].remove(user)

我会简化:

user_list = myDict['users']
for usr_dict in user_list:
  if usr_dict['name'] = name_to_remove:
    myDict['users'].remove(usr_dict)

此外,缩小一个步骤以提高查找效率(和循环简单性),您可以[重新]构建myDict,如下所示:

users_dict = {
       'u1234': {
              'userid': 'u1234'
              'name': 'user1'
        },
        'u0007': {
              'userid': 'u0007'
              'name': 'user2'
        }
}

然后,您的循环可能会变成:

for uid, obj in users_dict.items():
  if obj['name'] == username_to_delete:
    users_dict.remove(uid)

相关问题 更多 >