我需要迭代结果以生成具有以下结构的dics列表:
items = [{'clients': [
{'value': i[4], 'first_name': i[1], 'last_name': i[3]},
{'value': i[4], 'first_name': i[1], 'last_name': i[3]}
]
}]
for i in results:
items = ?
修改
[0] => tuple(5)
[0] => int(396043)
[1] => str(45) "First name"
[2] => int(532)
[3] => str(45) "Second name"
[4] => float(1.0)
[1] => tuple(5)
[0] => int(374286)
[1] => str(24) "First name"
[2] => int(537)
[3] => str(24) "Second name"
[4] => float(1.0)
我该怎么做?
答案 0 :(得分:0)
您可以使用列表推导基于results
中的每个元组生成词典:
items = [{
'clients': [{'value': i[4], 'first_name': i[1], 'last_name': i[3]} for i in results]
}]
您还可以使用元组赋值在循环中生成更有意义的名称
items = [{
'clients': [{'value': value, 'first_name': first, 'last_name': last}
for _, first, _, last, value in results]
}]
您也可以在显式for循环中执行此操作,但列表理解会更快。显式循环版本:
clients = []
items = [{'clients': clients}]
for _, first, _, last, value in results:
clients.append({'value': value, 'first_name': first, 'last_name': last})
这里_
是约定用于我们忽略的循环变量的名称。它只是表示我们不会再使用_
,但需要一个分配目标。