我正在使用Cloudant NoSQLDB编写python客户机示例。对于相对简单的文档创建,这是可以的。但是,尝试将base64编码的文件作为doc的附件上载时,遇到了一个我自己无法解决的问题。
请帮帮我。在
这是我的密码。在
from cloudant.client import Cloudant
from cloudant.error import CloudantException
from cloudant.result import Result,ResultByKey
import base64
.
.
.
client.connect()
databaseName = "mydata1"
myDatabase = client[databaseName]
targetfile = "chibitest.png"
with open(targetfile,"rb") as fp:
byte_content = fp.read()
dataContentb= base64.b64encode(byte_content)
dataContent = dataContentb.decode()
jsonDoc = {
"nameField": "sample1",
"_attachements":{
targetfile:
{"content-type":"image/png",
"data":dataContent}
}
}
newDocument = myDatabase.create_document(jsonDoc)
结果误差如下:
^{pr2}$(如果没有“附件”部分,则可以正常工作。)
附加信息。在
在上述代码中,行
^{3}$是解决json错误所需的。这要感谢一篇文章,Serialize in JSON a base64 encoded data
尽管我不能像本文所示那样将“ENCODING”指定为decode()参数(因为会导致“not defined error”),但我猜结果是 据我所知,通过插入print语句,dataContent就可以了。。在
您是正确的,但是有一个put_attachment方法专门用于将附件上载到现有文档。在
这里有一些工作代码
这将创建一个数据库,添加一个文档,然后上载一个图像附件。脚本完成后,文档如下所示:
^{pr2}$相关问题 更多 >
编程相关推荐