from dbfread import DBF
def sql_create_table(db):
""" Para crear la tabla con sql.
(Ajustar hasta que funcione correctamente) """
columnas = []
campos = db.fields
for campo in campos:
tipo = campo.type
if tipo == "C": # Caracter.
tmp = "%s VARCHAR(%s)" % (campo.name, campo.length + 1)
columnas.append(tmp)
elif tipo == "N": # Numerico.
tmp = "%s NUMERIC(%s, %s)" % (campo.name, campo.length, campo.decimal_count)
columnas.append(tmp)
elif tipo == "D": # Fecha.
tmp = "%s DATE" % (campo.name,)
columnas.append(tmp)
else:
raise NotImplementedError("Tipo %s no implementado" % tipo)
q = "CREATE TABLE IF NOT EXISTS %(nombre)s\n(\n%(columnas)s\n);"
q = q % dict(nombre=db.name.rstrip(".dbf"),
columnas=",\n".join(columnas))
return q
# Conexion con el dbf.
db = DBF("tabla.dbf")
# Estructura de la tabla.
sql = sql_create_table(db)
# Establecer una conexion a mysql y ejecutar este script.
print(sql)
# # Datos.
# for record in db:
# print(record)