Python如何批量重命名字典列表中所有字典的指定键名
问题描述
需要将字典列表内每个字典中的键Number重命名为ProjectId,编写的renaming()函数运行未达到预期,原始代码如下:
# 此处原变量名存在拼写错误:pojects 应为 projects pojects = [{'Number': '5', 'Name': 'CFO'}, {'Number': '7', 'Name': 'Head of Product'}, {'Number': '6', 'Name': 'CEO'}] def renaming(projects): for i in projects: i['ProjectId'] = i.pop('Number') return projects
错误原因
return projects的缩进位置错误,被放在了for循环体内部。循环第一次执行、处理完列表第一个字典后就会直接触发返回,后续所有字典都不会被处理。- 原始列表的变量名拼写错误,将
projects错写为pojects,直接运行会触发名称未定义的报错。
修正方案
将return语句移动到for循环外部,确保所有字典都被处理后再返回结果,同时修正变量名拼写错误:
projects = [{'Number': '5', 'Name': 'CFO'}, {'Number': '7', 'Name': 'Head of Product'}, {'Number': '6', 'Name': 'CEO'}] def renaming(projects): for i in projects: i['ProjectId'] = i.pop('Number') return projects
运行结果
调用函数后返回的正确结果如下:
[ {'Name': 'CFO', 'ProjectId': '5'}, {'Name': 'Head of Product', 'ProjectId': '7'}, {'Name': 'CEO', 'ProjectId': '6'} ]
内容的提问来源于stack exchange,提问作者Theresa_S
相关产品推荐
相关产品推荐

