You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用pymongo的update_one方法时报filter需为dict等类型的TypeError如何解决?

报错触发原因

pymongo的update_one方法要求传入的第一个参数(匹配要更新数据的过滤条件)、第二个参数(更新操作规则)都必须是字典(dict)、bson.son.SON或者其他继承自collections.Mapping的映射类型。
你代码中写的{"name", "Amy"}和{"address", "Ahmadabad"}都不是字典,而是Python的集合(set)类型:Python语法中大括号内用逗号分隔无对应关系的元素时会被识别为集合,只有用键:值格式分隔的内容才会被识别为字典,因此触发了类型校验错误。

修复方案

把所有集合写法调整为字典的键值对写法即可,修改后的可运行代码如下:

# 过滤条件改为字典格式,键值用冒号分隔
prev = {"name": "Amy"}
# 更新规则中的字段赋值也改为字典键值对格式
next_ = {"$set": {"address": "Ahmadabad"}}
collection.update_one(prev, next_)

内容的提问来源于stack exchange,提问作者Urmil Rupareliya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 22:12:03