Dataset, abstracción de bases de datos relacionales para pythoneros vagos

Seamos serios, tratar con bases de datos así, a pelo, es un peñazo de cuidado. Por eso surgen frameworks, interfaces, abstracciones o como quieras llamarlos para facilitar esta labor. Es el caso de (aunque son muy distintos entre si) Hibernate (Java) o PDO (PHP). Para Python también hay varias opciones pero hoy te traemos una que tiene especial buena pinta: dataset.

La premisa de dataset es hacer tan sencillo manejarse con bases de datos en Python como lo es manejarse con ficheros a través de JSON y la verdad es que tiene unas características bien interesantes:

  • Schema automático, es decir, si escribes una tabla o una columna que no existe, se crea. Magia potagia.

  • Upserts, o sea, no tienes que distinguir si updateas o insertas, ya lo hace dataset por ti

  • Es compatible con la mayoría de las bases de datos relacionales top como MySQL, Postgre SQL, SQLite (o cualquier otra que incluya SQL en su nombre, basicamente).

  • La base de datos puede ser exportada de manera sencilla a través de scripts e incluyendo metadatos y nombres de ficheros dinámicos

  • Query helpers, como all rows en una tabla o all distinct values a través de un conjunto de columnas.

Y ya que estamos, un ejemplo de como queda el código:

import dataset

db = dataset.connect('sqlite:///:memory:')

table = db['sometable'] table.insert(dict(name='John Doe', age=37)) table.insert(dict(name='Jane Doe', age=34, gender='female'))

john = table.find_one(name='John Doe')

Elegante a la par que bello. Tiene buena pinta. Ya sabéis pythoneros, a probarlo (los que no lo hayáis hecho todavía, claro) y a darnos feedback al resto vía comentarios.

Pd: obviamente puedes forkear dataset desde Github.

Vía e imagen | dataset

Ver todos los comentarios en https://www.genbeta.com

VER 0 Comentario

Portada de Genbeta