2012-11-27 81 views
0

我正在嘗試使用CouchDB的Python包裝來更新數據庫。該文件按如下所示構建爲嵌套字典。爲什麼CouchDb-python(或我)會混淆字符串和字典?

doc = { ..., 
    'RLSoo': {'RT_freq': 2, 'tweet': "They're going to play monopoly now. 
    This makes me feel like an excellent mother. #Sandy #NYC"}, 
    'GiltCityNYC': {}, 
    ....} 

我願把大dicitionary的每個條目,例如RLSoo到它自己的文件。但是,當我嘗試下面的代碼時,我收到一條錯誤消息。

for key in doc: 
     db.update(doc[key],all_or_nothing=True) 

錯誤消息

TypeError: expected dict, got <type 'str'> 

我不明白爲什麼CouchDB的將不接受字典。

回答

1

根據Database.update()方法實現和他的文檔,第一個參數應該是文檔對象列表(例如字典列表)。由於您的doc變量具有字典類型,因此直接對其​​進行迭代實際上遍歷所有字符串類型的鍵。如果我理解你的情況,可能你的doc包含嵌套的文檔爲values。所以,儘量只:

db.update(doc.values(), all_or_nothing=True) 

而這一切都第一級值類型的字典,它應該工作!