我目前正在开发一个zabbix脚本,以便为用户添加他们的群组。一个用户有多个组,zabbix documentation的部分为:
"usrgrps": [
{ "usrgrpid": "7" },
{ "usrgrpid": "8" },
{ "usrgrpid": "9" }
]
我在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"},]'
答案 0 :(得分:8)
您可以使用列表理解。
mylist = ['12', '13', '14']
d = {"usrgrps": [{'usrgrpid': uid} for uid in mylist]}
>>> d
{'usrgrps': [{'usrgrpid': '12'}, {'usrgrpid': '13'}, {'usrgrpid': '14'}]}
答案 1 :(得分:1)
只需构建如下数据:
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"}]}'
答案 2 :(得分:1)
ids=['12','13','14']
{'usrgrps': list(map(lambda x: {'usrgrpid' : x}, ids))}