Si pusieras parte de cvs te podría ayudar mejor. Y como esta tus tablas en la db. Voy asumir muchas cosas espero que concuerde un poco con lo que tratas de hacer.
Código Python:
Ver originalimport csv
with open("input.txt", "rb") as f:
reader = csv.reader(f)
next(reader) # Asumiendo que la primer linea son headers
data = [i[:2] + i[2].split(",") + i[3:] for i in reader]
padres = set()
hijos = set()
familias = set()
for i in data:
familia, padre, hijo = i[2], i[3], i[4]
padres.add(padre)
hijos.add((padre, hijo))
familias.add((familia, padre, hijo))
for padre in padres:
# Inserta los padres
pass
for padre, hijo in hijos:
# Inserta los hijos
pass
for familia, padre, hijo in familias:
# Inserta las familias
pass
La verdad no tengo idea de como sea el esquema de tu db. Supongo que la única parte que puede variar es la de los padres ya que solo te interesa padres que no tengan padres.