【发布时间】:2021-12-17 11:43:50
【问题描述】:
问题陈述:
这就是我调用 prepare_payload.py 的方式,
python3 prepare_payload.py ['Test_B1','Test_B2','Test_B3'] [https://10.5.5.1,https://10.5.5.2,https://10.5.5.3] ['abc','efg','sss']
我正在尝试准备的 json 有效负载:
{
"billing_account_number": "",
"vcenter_url": "",
"cred_header": "",
}
预期输出:
{
"billing_account_number": "Test_B1",
"vcenter_url": "https://10.5.5.1",
"cred_header": "abc",
}
{
"billing_account_number": "Test_B2",
"vcenter_url": "https://10.5.5.2",
"cred_header": "efg",
}
{
"billing_account_number": "Test_B3",
"vcenter_url": "https://10.5.5.3",
"cred_header": "sss",
}
我的代码:
import json
import os
import sys
master_list = []
billing_account_number = sys.argv[1]
ip_addr = sys.argv[2]
cred_header = sys.argv[3]
res = list(map(str, billing_account_number.strip('[]').split(',')))
ip = list(map(str, ip_addr.strip('[]').split(',')))
cred_headers = list(map(str, cred_header.strip('[]').split(',')))
master_list.append(res)
master_list.append(ip)
master_list.append(cred_headers)
def prepare_payload():
with open("rabbitmq_payload.json") as fh:
data = json.load(fh)
print('================================================')
return data
data = prepare_payload()
for i in master_list:
for j in i:
data['billing_account_number'] = j
data['vcenter_url'] = j
data['cred_header'] = j
print(data)
我不知道是否必须将这些单独的列表(例如 res、IP、cred_headers)合并到一个列表中,然后像主列表 [res[0],IP[0],cred_headers[0]] 一样进行迭代然后开始替换我的数据字典中的键值对? 如果有任何我可以依赖的内置功能或任何有效的方法来解决这个问题,请帮助我。提前感谢所有优秀的 Python 程序员!
【问题讨论】:
标签: python json list dictionary list-manipulation