【发布时间】:2011-12-18 00:33:18
【问题描述】:
首先,desktopcouch.records.server.CouchDatabase 的一个奇怪行为:
db.get_record(id) 返回:
<desktopcouch.records.RecordDict object at 0x9198f2c>
db.get_records('mytype', True) 返回数组:
<Row id='5rMlni6ZYudp5gvSADve1Y', key='mytype', ...>
db 是CouchDatabase('mydb', create=True)
为什么会有这种差异?
这会导致返回我的字典,该字典保存为空字典 {},在第一种情况下为 <desktopcouch.records.RecordDict object at 0x9198f2c>,在第二种情况下为 {}。
这在使用 db.get_record(id) 获取它并使用 db.update_fields(id, record) 更新时会产生一些问题。它抛出''Document'对象没有属性'read''
我哪里做错了?
编辑:
我向 Desktop CouchDB 发布了一个错误,并附有解释和 sn-p 以重现此行为 https://bugs.launchpad.net/desktopcouch/+bug/905913
【问题讨论】:
-
RecordDict好像也是个字典,你能试试吗? -
@FelixYan 感谢您的回答。尝试什么?当它具有 RecordDict 属性时,它无法保存我的记录。一切都适用于常规 {}。顺便说一句,有一些用于 desktopcpuch 的 API 文档吗?我发现只有freedesktop.org/wiki/Specifications/desktopcouch/Documentation 看起来很差。
-
不太了解,不过你还是可以试试
dict()它,如果真的是一个dict(如它的名字所示),那么你会得到一个python dict。 -
我试过了,但同样的错误,现在我发现是什么原因,我更加困惑。看看这段代码和它打印的内容gist.github.com/1492994(tmp 是 desktopcouch.records.Record),这是原因之一。我预计最后一次打印是 {},而不是
。
标签: python dictionary nosql couchdb record