我尝试将函数对象追加到列表中,这是字典的元素:
jobs = {}
job = sched.add_date_job(callback, run_at, [params])
jobs[hereCanBeRandomNumber].append(job)
但是,似乎我在最后一行遇到了问题。编译说:KeyError: 118096950
。
有什么问题?
答案 0 :(得分:2)
您添加到词典的方式不正确。
jobs[hereCanBeRandomNumber].append(job)
转换为“使用键hereCanBeRandomNumber
”
如果您要添加到字典中,请使用:
jobs[hereCanBeRandomNumber] = job
这将添加到jobs
dict,所以它看起来像:
jobs = {118096950: job}
答案 1 :(得分:0)
所以你的问题是你试图附加一个尚不存在的密钥。
拿一本像
这样的字典 jobs = {}
并做
jobs[123].append(foo)
会产生一个KeyError,因为123还没有。
要解决此问题,您可以执行以下任一操作:
from collections import defaultdict
jobs = defaultdict(list)
jobs[123].append(foo)
这意味着如果某个键不存在,则首先将其初始化为空列表或
jobs = {}
jobs[123] = jobs.get(123, []).append(job)
检查作业是否存在密钥,如果不存在,则使用空列表