我正在使用:
根据https://pypi.python.org/pypi/cloudant/2.0.0b2,一切都从0.5升到2.0,他们仍在处理文档,因为一切都是Beta。接下来,我也是Python和数据库的新手。文档可以在这里找到: http://python-cloudant.readthedocs.io/en/latest/getting_started.html
我要做的是检查文档是否已存在。
我尝试过的事情:
<div id="container">
<div>
Some<br>very<br>high<br>text<br>that<br>uses<br>disgusting<br>BRs
</div>
<div>
The short one
</div>
</div>
但是在检索文档之前代码失败了。我检查了源代码,它看起来应该是:
from cloudant.account import Cloudant
import time
import json
# Connect to the database
client = Cloudant(*hidden*)
client.connect()
# The database we work in
db = client['myDatabase']
# The document we work on
doc = db['myDocument']
print doc.exists()
来源:https://pypi.python.org/pypi/cloudant/2.0.0b2
在检索文档之前,有没有办法检查文档是否存在?或者我应该检索它并发现错误?或者有不同的方法吗?
感谢任何帮助!
答案 0 :(得分:2)
您所描述的行为是python-cloudant库数据库对象所需的行为,因此如果您打算使用数据库对象来检索文档并填充本地数据库缓存,则应该查看except
a发生不存在的文档和句柄时的KeyError。但是,如果有兴趣在将文档带入本地数据库缓存之前捕获文档是否存在,那么将代码更改为:
from cloudant.account import Cloudant
from cloudant.document import Document
# Connect to the database
client = Cloudant(*hidden*)
client.connect()
# The database we work in
db = client['myDatabase']
# The document we work on
if Document(db, 'myDocument').exists():
doc = db['myDocument']
会做到这一点。
同样你可以这样做:
from cloudant.account import Cloudant
from cloudant.document import Document
# Connect to the database
client = Cloudant(*hidden*)
client.connect()
# The database we work in
db = client['myDatabase']
# The document we work on
doc = Document(db, 'myDocument')
if doc.exists():
doc.fetch()
但是这不会填充本地数据库缓存,db
字典。