繁体   English   中英

python 更新列表中字典的每个键值

[英]python updating each key value of dictionary in list

我在列表中有一个字典,我正在尝试迭代列表并更新字典键,每隔 10 秒更新一次值。

例子:

list = [{"id": 3, "status": "pending"}, {"id": 4, "status": "pending"}, {"id": 2, "status": "pending"}]

在某个条件下,我有另一个变量global_status = executing or blocked or completed根据global_status执行或阻塞或完成

if (global_status == executing ):
        output : [{"id": 3, "status": "routing"}, {"id": 4, "status": "pending"}, {"id": 2, "status": "pending"}]
    wait for 10 seconds
        output : [{"id": 3, "status": "completed"}, {"id": 4, "status": "routing"}, {"id": 2, "status": "pending"}]
    wait for 10 seconds
        output : [{"id": 3, "status": "completed"}, {"id": 4, "status": "completed"}, {"id": 2, "status": "completed"}]

在这里,我正在遍历列表,等待 10 秒。 根据global_status ,按顺序分别更新每个字典的键、值。

我为您的代码做了两个修复。

第一:你必须有固定的模式才能使用 for 循环。 我为你做了一个示例模式。

routing     pending     pending
completed   pending     pending

completed   routing     pending
completed   completed   pending

completed   completed   routing
completed   completed   completed

第二:您必须使用两个 for 循环来更改每个字典中的每个“状态”,否则它将更改所有这些状态。

import time
List = [{"id": 3, "status": "pending"}, {"id": 4, "status": "pending"}, {"id": 2, 
"status": "pending"}]
count = ['routing', 'completed'] # this is for your status

for i in List:
    for j in range(len(i)):
        i['status'] = count[j]
        print(List)
        time.sleep(10)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM