среда, 14 сентября 2011 г.

сформировать словарь вида

Очень старая задача .

Я получаю списки вида

список1 = [data,data,data,data,,,,,data+n]

списко2 = [(data,data,data,data,,,,,data+n),(data,data,data,data,,,,,data+n),(data,data,data,data,,,,,data+n),....]

длинна данных из списка1 совпадают с длинной кортежа списка2

Как пример:

список1 = [12 элементов]
список2 = [(12 элементов),(12 элементов),(12 элементов),....]

Задача преобразовать его в следующий вид

'data0':
[
{ 'field_name' : 'ID', 'field_value' : 1 },
{ 'field_name' : 'ID-2', 'field_value' : 'r43eq1' },
],
'data1': [{},{}], ... 'dataN' : [{},{}]

data0 = 0 кортежу из списка2
где field_name - я получаю из списка1
field_value = data из приведенного списка2

решение №1 : спасибо за него dipsy с forum.vingrad.ru


s1 = ["q", "w", "e"]
s2 = [[1,2,3],[4,5,6]]
lmb = lambda x: 'data%d' %x
print dict((lmb(j), [{"field_name" : s1[i], "field_value": s2[j][i]}
for i in xrange(len(s1))]) for j in xrange(len(s2)))



решение №2 : мое решение которое я соответственно заменил на предыдущие .

globaList = list()
for item in range(len(list_data)):
struct = {}
lst = []
for j in range(len(list_data[item])):

if list_data[item] != None:
if splits_list_table_name[j] != None:
if list_data[item][j] != None:
lst.append({'field_name' : splits_list_table_name[j], 'field_value' : self.list_data[item][j]})
struct['data'] = lst
struct['documents'] = []

globaList.append(struct)

res = { 'columns' : columns, 'table' : globaList }

Комментариев нет:

Отправить комментарий