Итак, у меня есть словарь уровней образования:
education_levels = {
"Less than high school": 0,
"High school diploma or equivalent": 1,
"Postsecondary non-degree award": 2,
"Some college, no degree": 3,
"Associate's degree": 4,
"Bachelor's degree": 5,
"Master's degree": 6,
"Doctoral or professional degree": 7,
"#N/A": 100
}
Я хочу запросить свою базу данных, чтобы она показывала только те уровни образования, которые равны или ниже введенного уровня образования.
jobs = Occupation.query.filter(Occupation.area_name == area).filter(
education_levels[Occupation.typical_entry_level_education] <= education_levels[education])
Однако это дает мне ключевую ошибку. Я понимаю, что ключевая ошибка - это когда вы ищете что-то, что не является ключом. Я на 100% уверен, что перебрал все возможные ключи из базы данных. Я даже пытался найти что-то, чего нет в наборе ключей, используя это:
def test():
jobs = Occupation.query.all()
job_list = []
for job in jobs:
if not(job.typical_entry_level_education in education_levels.keys()):
d = {
'ed': job.typical_entry_level_education
}
job_list.append(d)
return job_list
Вывод, который я получаю с помощью моей функции test(), таков:
{
"jobs": []
}
Я не могу понять, как я получаю ошибку ключа, когда все находится в наборе ключей. Я даже пробовал логические проверки в своем запросе, и он все равно выдает мне ошибки
вот ошибка, которую я получаю (я уверен, что это от Occupation.typer_entry_level_education, потому что я удалил последний, и он все еще дает мне ошибку)
education_levels[Occupation.typical_entry_level_education] <= education_levels[education])
KeyError: <sqlalchemy.orm.attributes.InstrumentedAttribute object at 0x3161e30>