Python中嵌套字典如何提取内层id值生成指定参数结构
报错原因
dict.values()返回的是dict_values类型的可迭代对象,不是字典结构,无法直接通过["id"]下标提取所有子字典的id字段。
解决方法
方案1:列表推导式(最推荐,可读性最高)
直接遍历dict1.values()中的每个子字典,逐个提取id字段即可:
params = {"user_ids": [user["id"] for user in dict1.values()]}
如果部分子字典可能不存在id键,不想触发KeyError的话,可以加校验或者用get方法容错:
# 仅保留存在id键的用户id params = {"user_ids": [user["id"] for user in dict1.values() if "id" in user]} # 不存在id时用None填充 params = {"user_ids": [user.get("id") for user in dict1.values()]}
方案2:map函数写法
也可以用map搭配lambda函数实现,适合简单的提取场景:
params = {"user_ids": list(map(lambda x: x["id"], dict1.values()))}
内容的提问来源于stack exchange,提问作者Truebsal
相关产品推荐
相关产品推荐

