7.13.1 Oggetti Hash, BTree e Record

Una volta istanziati, gli oggetti hash, btree e record supportano gli stessi metodi e dizionari. In aggiunta, supportano i metodi elencati qui sotto. Modificato nella versione 2.3.1: Aggiunti i metodi dei dizionari.

close( )
Chiude il file sottostante. Non si può più accedere all'oggetto. Visto che non esiste alcun metodo open per questi oggetti, per aprire nuovamente il file è necessario chiamare ancora la funzione open del modulo bsddb.

keys( )
Restituisce la lista delle chiavi contenute in un file DB. L'ordine della lista non è specificato e non vi si dovrebbe fare affidamento. In particolare, l'ordine della lista restituita è differente a seconda dei formati.

has_key( key)
Restituisce 1 se il file DB contiene l'argomento come chiave.

set_location( key)
Imposta il cursore all'elemento indicato dalla chiave key e restituisce una tupla contenente la chiave ed il suo valore. Per i database ad albero binario (aperti usando btopen()), se la chiave key non esiste realmente nel database, il cursore punterà al prossimo elemento in maniera ordinata restituendo quella chiave e quel valore. Per altri database, verrà sollevata l'eccezione KeyError se la chiave non viene trovata nel database.

first( )
Imposta il cursore al primo elemento nel file DB e lo restituisce. L'ordine delle chiavi non è specificato, eccetto nel caso di database B-Tree.

next( )
Imposta il cursore al prossimo elemento nel file DB e lo restituisce. L'ordine delle chiavi non è specificato, eccetto nel caso di database B-Tree.

previous( )
Imposta il cursore all'elemento precedente nel file DB e lo restituisce. L'ordine delle chiavi non è specificato, eccetto nel caso di database B-Tree. Questo metodo non è supportato nei database a tabella di hash (quelli aperti con hashopen()).

last( )
Imposta il cursore all'ultimo elemento nel file DB e lo restituisce. L'ordine delle chiavi non è specificato. Questo metodo non è supportato nei database a tabella di hash (quelli aperti con hashopen()).

sync( )
Sincronizza il database sul disco.

Esempio:

>>> import bsddb
>>> db = bsddb.btopen('/tmp/spam.db', 'c')
>>> for i in range(10): db['%d'%i] = '%d'% (i*i)
... 
>>> db['3']
'9'
>>> db.keys()
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
>>> db.first()
('0', '0')
>>> db.next()
('1', '1')
>>> db.last()
('9', '81')
>>> db.set_location('2')
('2', '4')
>>> db.previous() 
('1', '1')
>>> for k, v in db.iteritems():
...     print k, v
0 0
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
>>> '8' in db
True
>>> db.sync()
0
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.