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.