1
我正在使用Cloudant NoSQLDB處理python客戶端示例。對於相對簡單的文件創建來說,沒關係。然而,試圖上傳一個base64編碼文件作爲doc的附件,我遇到了一個我自己無法解決的問題。
請幫幫我。如何解決用於創建具有附件的新Cloudant文檔的「錯誤請求錯誤」。
這是我的代碼。
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)
結果錯誤如下:
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request doc_validation Bad
special document member: _attachements for url:https://.....cloudant.com/mydata1
(沒有 「_attachements」 部分,它工作適當。)
的附加信息。
在上面的代碼中,行;
dataContent = dataContentb.decode()
是我需要解決json錯誤。這要歸功於一篇文章,Serialize in JSON a base64 encoded data
雖然,我不能指定「編碼」作爲解碼()的參數,如本文中顯示(因爲造成「沒有定義的錯誤」),我猜結果 dataContent會OK,只要我可以通過插入打印聲明來看到。