Couchdb python endkey在vi中似乎没有效果

2024-09-23 16:30:40 发布

您现在位置:Python中文网/ 问答频道 /正文

{chdb>可能已尝试使用cdb}的格式检索文档。在

我希望能够使用couchdb python中的视图检索一系列日期。我可以用curl让它工作。E、 g.:

curl -X GET mylocation:5984/small/_design/Common/_view/date?startkey='"2012%2006%2004"'\&endkey='"2012%2006%2006"'

但是,在Python中使用view方法,例如

^{pr2}$

一事无成。我试过:

  1. 单独使用startkey——有效

  2. 单独使用Endkey——不起作用。

  3. 将键更改为复合键形式:“yy”、“mm”、“dd”

然后尝试按如下方式检索它们:

a=ui.db.view(docname, startkey='\["12","06","04"\]', endkey='\["12","06","06"\]')
a.rows

同样,startkey本身是有效的,没有使用endkey。这在curl中也正常工作,例如:

curl -X GET mylocation:5984/small/_design/Common/_view/date?startkey='\["12","06","04"\]'&endkey='\["12","06","06"\]'

然后,我将键改为整数而不是字符串——同样,任何使用startkey的都可以,任何使用endkey的都不行。在

最后,我将密钥更改为整数1-->10,但仍然无法获取endkey来执行任何操作。在

我使用的是couchdb pythonversion0.8。我正在调试eric4内部的这个(可能是这个问题吗?)在


Tags: viewgetdate格式整数commoncurlcouchdb
1条回答
网友
1楼 · 发布于 2024-09-23 16:30:40

您不需要在视图调用中将startkey/endkey查询参数显式地编码为JSON。默认情况下,CouchDB要求它们具有有效的JSON值。E、 g.如果您的视图以[“yy”,“mm”,“dd”]的形式返回复合键,那么您的视图请求将是下一个

a = ui.db.view(docname, startkey=["12","06","04"], endkey=["12","06","06"])

注意,startkey和endkey有列表类型的值-与view函数键相同。在

关于curl请求:它不等同于数据库视图()请求:单引号充当shell字符串转义,但它们不会随请求一起传递。所以curl对CouchDB的实际请求是

mylocation:5984/small/_design/Common/_view/date?startkey=["12","06","04"]&endkey=["12","06","06"]

除非有无效的\u json错误响应,因为json字符串应该用双引号引起来。在

无论如何,您可以查看CouchDB日志(对于您的情况,信息级别已经足够了)来比较来自Python程序和curl的CouchDB的实际请求-它们对于您的情况是不同的。在

相关问题 更多 >