Python 3.5 と bsddb3 を使用して、Berkeley DB データベースにデータを書き込もうとしています。Berkeley DB の経験はありませんが、タイムスタンプをキーとして使用し、JSON データをそれぞれの値として使用するのが好きです。次の例では、エラーが発生します。
#!/usr/bin/env python3
import bsddb3
import time
fn = 'berkeley.db'
db = bsddb3.hashopen(fn, 'c')
t = time.time()
d = "{ data: 'foo' }"
db[t] = d
db.close()
エラー:
$ python3 example.py
[...]
self.db[key] = value
TypeError: Bytes or Integer object expected for key, float found
time.time()
たとえば、の代わりに整数を使用してdb[0] = data
も機能しませんTypeError: Integer keys only allowed for Recno and Queue DB's
。
残念ながら、Python で Berkeley DB を使用する方法に関する包括的なドキュメントはありません。私が間違っていることに関する提案はありますか?