我有一个小词典列表,我想在每个词典中插入一个值build_time
,其中build_time
对于字典中的不同job_name
是不同的。
我已经在代码中的一个函数中添加了已经创建的字典列表,但是我的代码只是将所有值添加到字典列表的末尾。 这是我到目前为止尝试过的
part of code
# call the function to create initial dictionary
url = "https://" + self.jenkins_instance + "/api/json?pretty=true&tree=jobs[name,lastBuild[url,id,building,builtOn,timestamp,result]]"
try:
urllib3.disable_warnings(category=InsecureRequestWarning)
res = requests.get(url, auth=HTTPBasicAuth(self.user,
self.jenkins_api),
verify=False)
jobs = json.loads(res.text).get("jobs")
for j in jobs:
last_build = j.get("lastBuild")
if last_build is None:
continue
self.start_timestamp = last_build.get("timestamp")
records = {"last_build": self.start_timestamp}
self.my_list.append(records)
print(self.my_list)
这是我的初始清单
[{'job_name': 'name`', 'job_state': 'state_old'},
{'job_name': 'name2', 'job_state': 'state_new'},
{'job_name': 'name3', 'job_state': 'state_old'}]
这是一个示例列表,实际列表要长得多。
这是预期的输出
[{'job_name': 'name`', 'job_state': 'state_old', 'build_time':'xx-xx-xxx'}
,{'job_name': 'name2', 'job_state': 'state_new', 'build_time':'xy-xx-xxxy'}
,{'job_name': 'name3', 'job_state': 'state_old','build_time':'xx-xx-zzz'}]
我的代码是什么
[{'job_name': 'name`', 'job_state': 'state_old'}
,{'job_name': 'name2', 'job_state': 'state_new'}
,{'job_name': 'name3', 'job_state': 'state_old'}
, {'build_time':'xx-xx-xxx'}
,{'build_time':'xy-xx-xxxy'}
, 'build_time':'xx-xx-zzz'}]
答案 0 :(得分:2)
为了更新列表中的每个字典,请更改以下内容:
self.my_list.append(records)
对此:
for item in self.my_list:
item.update(records)