![](/img/trans.png)
[英]Using a for-loop, in another for-loop, to iterate through a list of lists
[英]Iterate through a list without using a loop
我目前正在使用zabbix脚本来添加用户组。 一个用户有许多组, zabbix文档的部分为:
"usrgrps": [
{ "usrgrpid": "7" },
{ "usrgrpid": "8" },
{ "usrgrpid": "9" }
]
我有一个组ID的列表,我想用7,8,9
替换list[0], list[1], list[2]
我尝试过使用.join
方法:
mylist = ['12','13','14']
z = '"usrgrpid":"'.join(mylist)
s = '"usrgrps": [{"%s"},]' % (z)
输出:
'"usrgrps": [{"12"usrgrpid":"13"usrgrpid":"14"},]'
您可以使用列表理解。
mylist = ['12', '13', '14']
d = {"usrgrps": [{'usrgrpid': uid} for uid in mylist]}
>>> d
{'usrgrps': [{'usrgrpid': '12'}, {'usrgrpid': '13'}, {'usrgrpid': '14'}]}
只需构建如下数据:
s = '"usrgrps": [{}]'.format(",".join(map(lambda x: '{{"usrgrpid":"{}"}}'.format(x), mylist)))
>>> s
'"usrgrps": [{"usrgrpid":"12"},{"usrgrpid":"13"},{"usrgrpid":"14"}]'
让我们扩展我们在这里做的事情:我们建立一个字符串列表,如{"usrgrpid":"12"}
map(lambda x: '"usrgrpid":{}"'.format(x), mylist)
然后我们将它们分开,
用",".join
来获得像{"usrgrpid":"12"},{"usrgrpid":"13"},{"usrgrpid":"14"}
最后,只需格式化"usrgrps": [{}]
字符串,将前一个字符串复制到“list”中。
否则你需要使用json
python库:
import json
data = json.dumps({"usrgrps": [{'usrgrpid': uid} for uid in mylist]})
data
'{"usrgrps": [{"usrgrpid": "12"}, {"usrgrpid": "13"}, {"usrgrpid": "14"}]}'
ids=['12','13','14']
{'usrgrps': list(map(lambda x: {'usrgrpid' : x}, ids))}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.