Python不可破坏类型';dict';在多级json数组中

Python不可破坏类型';dict';在多级json数组中,python,json,mongodb,dictionary,flask,Python,Json,Mongodb,Dictionary,Flask,我想在MongoDB中更新我的数据库,但我的代码出现错误 TypeError:无法损坏的类型:“dict” 我将tuple()放入字典中以修复类型错误:未损坏的类型:“list” 我曾尝试在internet和stackoverflow上搜索解决方案,但没有一个可以帮助我,有人能给我简单解释一下解决方案吗 @app.route('/updateData', methods=['POST']) def updateData(): dataList = mongo.db.warehouse

我想在MongoDB中更新我的数据库,但我的代码出现错误

TypeError:无法损坏的类型:“dict”

我将tuple()放入字典中以修复
类型错误:未损坏的类型:“list”

我曾尝试在internet和stackoverflow上搜索解决方案,但没有一个可以帮助我,有人能给我简单解释一下解决方案吗

@app.route('/updateData', methods=['POST'])
def updateData():
    dataList = mongo.db.warehouse
    old_Data = {
        "name": "Pulo Gebang Warehouse"
    }
    new_Data =  {
                    "$set": {
                        "racks.$[i].rack_columns.$[k].rack_objects.$[j].items": 
                            tuple([
                                {
                                    "index": 4,
                                    "item": {
                                    "SKU": "HD 2179/3",
                                    "arrivalDate": "2019-10-22",
                                    "brand": "Philips",
                                    "maxQty": 30,
                                    "name": "Playstatus 10",
                                    "qty": 10
                                    }
                                }
                            ])

                    }
                }
    arrayFilter = {
        tuple([
            {
            "i.code": "A"
            },
            {
            "k.ObjectID": 0
            },
            {
            "j.index": 4
            }
        ])
    }
    dataList.update(old_Data, new_Data, arrayFilter, upsert=True)
    return "Update Success!"

我以前在使用
{}
时见过这个错误。 看看这是否有效:

arrayFilters=[#没有大括号,这样Python就不会认为您正在创建一个集合
{
“i.代码”:“A”
},
{
“k.ObjectID”:0
},
{
“j.index”:4
}
])
#再次检查更新的签名
dataList.update(旧数据、新数据、arrayFilters=arrayFilters、upsert=True)

您正在创建一个集合,而不是一个字典打印它的类型,然后看到它说:uuu init_uuu()得到了一个意外的关键字参数'arrayFilters'gotcha-看起来您通过删除集合解决了
不可损坏的问题,但是现在您需要再次检查您正在使用的mongo python库的
更新
签名。e、 g.尝试将第三个参数改为dict
{“arrayFilters”:arrayFilters}
?如果你有链接的话,很乐意看一下文档。这可能还取决于你使用的mongo版本,因为更新签名已经改变了iirc