0
我想更新收藏簿中的記錄。 我想創建新的字段,其名稱和值是來自變量的值。如何在python mongodb腳本中使用動態變量
for book in db.books.find():
title = book['title']
author, value = getAuthor(title)
db.dataset.update({"_id": book['_id']}, {"$set": {author: value}})
當我這樣做時,我得到了錯誤:WriteError:更新路徑包含一個空的字段名稱。這是不允許的,因爲兩個變量都有值。我通過將作者封入[]來搜索並解決了此問題。因此,代碼如下所示:
for book in db.books.find():
title = book['title']
author, value = getAuthor(title)
db.dataset.update({"_id": book['_id']}, {"$set": {[author]: value}})
但現在我得到這個錯誤,我不能夠解決: 類型錯誤:unhashable類型:「名單」
有誰也遇到過這樣的問題嗎?我該如何解決它?
感謝您的回答,但正如問題中所述,兩個變量都具有價值。 getAuthor()總是返回一個值。它總是返回非空字符串。 – mark
是的,但在這個問題中,你沒有解釋你是如何知道的,或者你是否僅僅是假設它。當我的一個假設是錯誤的時候,我經常會遇到奇怪的錯誤。無論哪種方式,我認爲你應該解決第一個問題,因爲'[author]'是一個列表文字,試圖將鍵設置爲列表而不是字符串。 –
我debbuged它並打印所有的值,所以我看到它不是空的。我該如何解決第一個問題?除了將它封入[]還有其他的方法嗎? – mark