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

 
0
 
Python
ava
senkler | 21.01.2011, 16:53
Добрый день.

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

список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

Кто знает , как решить задачу ?
Kommentare (2)
ava
dipsy | 31.01.2011, 13:07 #

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)))

результат выполнения:

{'data1': [{'field_value': 4, 'field_name': 'q'}, {'field_value': 5, 'field_name': 'w'}, {'field_value': 6, 'field_name': 'e'}], 'data0': [{'field_value': 1, 'field_name': 'q'}, {'field_value': 2, 'field_name': 'w'}, {'field_value': 3, 'field_name': 'e'}]}
ava
senkler | 31.01.2011, 13:57 #
dipsy,
Спасибо за потраченное время и интересное решение.

Мое решение.

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 }

Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
  dipsy   senkler
advanced
Absenden