2010-05-06 7 views
5

Una forma de mantener manualmente un diccionario en una base de datos es aplanarlo en una secuencia de secuencias y pasar la secuencia como argumento a cursor.executemany().Convierta una secuencia de secuencias a un diccionario y viceversa

Lo contrario también es útil, es decir, leer las filas de una base de datos y convertirlas en diccionarios para su uso posterior.

¿Cuál es la mejor manera de pasar de myseq a mydict y de mydict a myseq?

>>> myseq = ((0,1,2,3), (4,5,6,7), (8,9,10,11)) 

>>> mydict = {0: (1, 2, 3), 8: (9, 10, 11), 4: (5, 6, 7)} 

Respuesta

5
mydict = dict((s[0], s[1:]) for s in myseq) 

myseq = tuple(sorted((k,) + v for k, v in mydict.iteritems())) 
+0

Gracias! Realmente no necesito la lista ordenada. – Louis

2
>>> mydict = dict((t[0], t[1:]) for t in myseq)) 

>>> myseq = tuple(((key,) + values) for (key, values) in mydict.items()) 

El orden de las tuplas en myseq no se conserva, ya que los diccionarios no están ordenados.

Cuestiones relacionadas