Donde puedo encontrar ejemplos de bsddb en uso?[cerrado]
-
22-08-2019 - |
Pregunta
Me he pasado horas buscando ejemplos de cómo utilizar el módulo bsddb y los únicos que he encontrado son estos (desde aquí):
data = mydb.get(key)
if data:
doSomething(data)
#####################
rec = cursor.first()
while rec:
print rec
rec = cursor.next()
#####################
rec = mydb.set()
while rec:
key, val = rec
doSomething(key, val)
rec = mydb.next()
¿Alguien sabe dónde podría encontrar más (práctico) ejemplos de cómo utilizar este paquete?
O a nadie le importa compartir el código que se ha escrito a sí mismos que utilizó?
Editar:
La razón por la que elegí la base de datos Berkeley DB fue debido a su escalabilidad.Estoy trabajando en un análisis semántico latente de alrededor de 2.2 Millones de páginas web.Mi simple prueba de 14 páginas web genera alrededor de 500.000 registros.Para hacer los cálculos de...habrá cerca de 78.6 Millones de registros en mi tabla.
Si alguien sabe de otro eficiente, escalable modelo de base de datos que puedo usar python para acceder, por favor hágamelo saber!(lt_kije ha traído a mi atención que bsddb
está en desuso en Python 2.6 y se ha ido en 3.*)
Solución
En estos días, la mayoría de la gente utiliza el href="http://docs.python.org/library/anydbm.html" rel="noreferrer"> anydbm meta-módulo es esencialmente dict-similares; ver PyMOTW para algunos ejemplos. Tenga en cuenta que bsddb está en desuso en 2.6.1 y se ha ido en 3.x. El cambio a anydbm hará más fácil la actualización; el cambio a SQLite (que ahora está en stdlib) le dará una tienda mucho más flexible.
Otros consejos
Mira: Lib3 / bsddb / prueba después de la descarga de la fuente de la http: //pypi.python. org / PyPI / bsddb3 /
La distribución actual contiene las siguientes pruebas que son muy útiles para empezar a trabajar con bsddb3:
test_all.py test_associate.py test_basics.py test_compare.py test_compat.py test_cursor_pget_bug.py test_dbenv.py test_dbobj.py test_db.py test_dbshelve.py test_dbtables.py test_distributed_transactions.py test_early_close.py test_fileid.py test_get_none.py test_join.py test_lock.py test_misc.py test_pickle.py test_queue.py test_recno.py test_replication.py test_sequence.py test_thread.py
Estoy asumiendo que este hilo sigue activo, así que aquí vamos.Este es áspera código y no hay ninguna comprobación de errores, pero puede ser útil como punto de partida.
Yo quería usar PHP integrado en DBA funciones y, a continuación, lea la base de datos usando Python (2.x) secuencia de comandos.Aquí está el script PHP que crea la base de datos:
<?php
$id=dba_open('visitor.db', 'c', 'db4');
dba_optimize($id);
dba_close($id);
?>
Ahora, aquí está el código PHP para insertar una entrada:Yo uso de JSON para celebrar el "real" de datos:
<?php
/*
record a visit in a BSD DB
*/
$id=dba_open('visitor.db', 'w', 'db4');
if (!$id) {
/* dba_open failed */
exit;
}
$key = $_SERVER['REQUEST_TIME_FLOAT'];
$rip = $_SERVER['REMOTE_ADDR'];
$now = date('d-m-Y h:i:s a', time());
$data = json_encode( array('remote_ip' => $rip, 'timestamp' => $now) );
$userdata=array($key => $data);
foreach ($userdata as $key=>$value) {
dba_insert($key, $value, $id);
}
dba_optimize($id);
dba_close($id);
?>
Ahora, aquí está el código que usted y yo estamos realmente interesados en, y se utiliza Python bsddb3 módulo.
#!/usr/bin/env python
from bsddb3 import db
import json
fruitDB = db.DB()
fruitDB.open('visitor.db',None,db.DB_BTREE,db.DB_DIRTY_READ)
cursor = fruitDB.cursor()
rec = cursor.first()
while rec:
print rec
visitordata = rec[1]
print '\t' + visitordata
jvdata = json.loads(visitordata)
print jvdata
rec = cursor.next()
print '\n\n'
print '----';
fruitDB.close()
La búsqueda de "bsddb importación", me sale:
- http://www.mnot.net/python/Cabinet.py
- http://www.java2s.com/Code/Python/Utility/Dumpadatabasefiletoapickle.htm
... pero personalmente había gran medida recomiendan utiliza SQLite en lugar de bsddb, la gente está utilizando la antigua mucho más por una razón.
El programa de genealogía abuelo utiliza bsddb por su base de datos