1. Regexp con SQLITE
Según aGueGu en stackoverflow podemos hacer búsquedas en sqlite y Python así
import sqlite3 import re # Definimos una función con 2 parámetros def match(expr, item): return re.match(expr, item) is not None conn = sqlite3.connect(':memory:') #Le pasamos esta función y le indicamos que tiene 2 parámetros conn.create_function("MATCHES", 2, match) cursor = conn.cursor() cursor.execute("SELECT MATCHES('^b', 'busy');") print (cursor.fetchone()[0]) cursor.close() conn.close()
2. Definición de funciones en SQLITE
En el apartado anterior hemos definido la función MATCHES, que usa regexp, ahora vamos a definir la función split de python donde le indicamos el delimitador. Pero a pesar que en geeksforgeeks.org dice que funciona, a mi no me funciona pues no deja que un campo sea tipo list, tupla o array!!!!!
import sqlite3
# Definimos una función con 2 parámetros def split_str(delimitedText, delimiter=','): return delimitedText.split(delimiter)
#Nos conectamos a sqlite, en este caso en memoria (sin fichero)
conn = sqlite3.connect(':memory:') #Le pasamos esta función y le indicamos que tiene 2 parámetros conn.create_function("SPLIT", 2, split_str)
cursor = conn.cursor() cursor.execute("SELECT SPLIT('Pepe;Juan;Ignacio', ';');")
print (cursor.fetchone()[0]) #FALLA!!!! cursor.close() conn.close()
No hay comentarios :
Publicar un comentario