python - TypeError: unhashable type: 'dict' 在 MongoDB 中更新数组时
问题描述
我正在尝试编写 RESTful API Web 服务。使用 MongoDB,我收集了这样的用户:
{
userId
name
passwd
listMovie: [
{
videoId
watchedTime
status
}
]
}
我创建了一个 API url 来将新的电影项目添加到listMovie
数组中。示例代码:
movie = {
'videoId': 3,
'watchedTime': 155000,
'status': False
}
self.userCollection.update_one({
{'userId': user_id},
{
'$push': {
'listMovie': movie
}
}
})
TypeError: unhashable type: 'dict'
但是这段代码在 line引发了一个错误'listMovie: movie'
。根据此链接pymongo api type-error,我知道该dict
类型不可散列。那么我怎样才能达到我的目的呢?
我使用 Python 和 PyMongo 连接到数据库
谢谢你的帮助!
解决方案
尝试删除第一个花括号:
self.userCollection.update_one(
{'userId': user_id},
{'$push': {'listMovie': movie}},
)
update_one
前两个参数是filter
和update
是两个字典。在您的示例中,您添加了一些额外的花括号,由于 set 速记语法,这导致 Python 实际构建了一个集合:
my_set = {1, 2} # set with elements 1 et 2
推荐阅读
- c# - antlr 只得到几个符号
- c++ - Why do they prefer dynamic scheduling in this code snippet
- android - 错误:包 androidx.databinding 不存在
- sql - SQL Server:列的链式分组
- python - 如果标签有属性,则刮掉标签
- r - 在 R flexdashboard 中使用闪亮的模块
- python-3.x - 发送 SIGTERM 到正在运行的任务,dask 分布式
- java - Android - 无法在 JRE 上编译 - 确保 Gradle 在 JDK 而不是 JRE 上运行
- c# - 如何从控制台/C# 程序启动/关闭 TwinCAT 系统?
- javascript - 使用 DOMParser 解析 XSLT