0

我正在尝试使用 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': {},
  ....}

我想将较大字典的每个条目,例如RLSoo放入其自己的文档中。但是,当我尝试以下代码时收到错误消息。

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

错误信息

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

我不明白为什么 CouchDB 不接受字典。

4

1 回答 1

1

根据Database.update()方法实现和他的文档,第一个参数应该是文档对象列表(例如字典列表)。由于您doc的变量具有 dict 类型,因此直接迭代它实际上会迭代他所有的字符串类型的键。如果我理解你的情况正确,可能你doc包含嵌套文档作为values。所以,试试:

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

并且所有第一级值都是字典,它应该可以工作!

于 2012-11-27T19:07:55.903 回答