我有以下词典对象:
Input = {'userName': ['psrr_api@auto-grid.com', 'ps_api1@auto-grid.com'],
'password': ['Everseeource2016!', 'Eversource2016!']}
然后将产生此特定输出:
output = [{'UserName':'ps_api@auto-grid.com','password': 'Eversource2016!'},
{'userName':'ps_api1@auto-grid.com','password':'Eversource2016!'}]
我不确定如何处理这个问题,我们将不胜感激。
答案 0 :(得分:3)
使用zip
同时迭代两个列表。使用dict constructor
在list comprehension
内创建单独的词典,以处理自动循环。
Input = {'userName': ['psrr_api@auto-grid.com', 'ps_api1@auto-grid.com'], 'password': ['Everseeource2016!', 'Eversource2016!']}
Output = [ {'UserName':u, 'password':p} for u,p in zip(Input['userName'], Input['password']) ]
答案 1 :(得分:1)
在许多NoSQL引擎中,数据通常以嵌套方式存储,对于您的情况,它将是:
{'ID_1':
{
'username':'psrr_api@auto-grid.com',
'password': 'Everseeource2016'
},
'ID_2':{
'username':'ps_api1@auto-grid.com',
'password': 'Eversource2016!'
}
}
这提供了一种通过ID
访问数据的有效方法以下是转换格式的代码:
此代码是通用的 - 意味着您不必指定密钥,在这种情况下:username
和password
,
from collections import defaultdict
data = defaultdict(dict)
for idx in range(len(Input.values()[0])):
for key in Input.keys():
data['ID_'+str(idx)].update({key: Input[key][idx]})
print data
答案 2 :(得分:1)
如果你偶然需要一个可变数量的键,你可以推广到:
<强>代码:强>
data = {'userName': ['psrr_api@auto-grid.com', 'ps_api1@auto-grid.com'],
'password': ['Everseeource2016!', 'Eversource2016!']}
for i in output:
print(i)
测试代码:
{'userName': 'psrr_api@auto-grid.com', 'password': 'Everseeource2016!'}
{'userName': 'ps_api1@auto-grid.com', 'password': 'Eversource2016!'}
<强>输出:强>
refreshControl