2010-05-06 21 views
5

Jednym ze sposobów ręcznego utrwalania słownika do bazy danych jest spłaszczenie go w sekwencji sekwencji i przekazanie sekwencji jako argumentu do cursor.executemany().Konwersja sekwencji sekwencji do słownika i odwrotnie

Odwrotne jest również przydatne, tj. Odczytywanie wierszy z bazy danych i przekształcanie ich w słowniki do późniejszego wykorzystania.

Jaki jest najlepszy sposób, aby przejść od myseq do mydict i od mydict do 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)} 

Odpowiedz

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

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

Dzięki! Właściwie nie potrzebuję posortowanej listy. – Louis

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

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

Kolejność krotek w myseq nie jest zachowana, ponieważ słowniki są nieuporządkowane.