Я получаю списки вида
список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 }
Комментариев нет:
Отправить комментарий