我想讀取一個tgz文件並將其寫入到couchdb。用python存儲tgz到couchdb
這裏是代碼。
import couchdb
conn = couchdb.Server('http://localhost:5984')
db = conn['test']
with open('/tmp/test.txt.tgz.enc') as f:
data = f.read()
doc = {'file': data}
db.save(doc)
它失敗
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
File "/usr/local/lib/python2.7/dist-packages/couchdb/client.py", line 407, in save
_, _, data = func(body=doc, **options)
File "/usr/local/lib/python2.7/dist-packages/couchdb/http.py", line 399, in post_json
status, headers, data = self.post(*a, **k)
File "/usr/local/lib/python2.7/dist-packages/couchdb/http.py", line 381, in post
**params)
File "/usr/local/lib/python2.7/dist-packages/couchdb/http.py", line 419, in _request
credentials=self.credentials)
File "/usr/local/lib/python2.7/dist-packages/couchdb/http.py", line 176, in request
body = json.encode(body).encode('utf-8')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 11: ordinal not in range(128)
依然圍繞谷歌搜索找到一個解決方案自己。
看看:http://api.mongodb.org/python/1.11/examples/gridfs.html –
我說的是couchdb不是mongodb。但是,謝謝,是的,我知道mongodb,但couchdb被選中。 – dave
你能告訴我們你的文件裏有什麼嗎? (或其中的一部分) – alexvassel