Ошибка при получении значения из списка на Python
Я пишу код для загрузки данных в YAML
файл, написал класс, которая будет загружать данные. Но столкнулся с такой ошибкой:
Traceback (most recent call last):
File "D:\Projects\ProjectsProgramming\PyCharmCommunity\OST\src\quiz\task_settings.py", line 36, in save_task_settings
self.quiz_activated()
File "D:\Projects\ProjectsProgramming\PyCharmCommunity\OST\src\quiz\task_settings.py", line 30, in quiz_activated
self.result.save_exam_result()
File "D:\Projects\ProjectsProgramming\PyCharmCommunity\OST\src\quiz\exam_result.py", line 18, in save_exam_result
name_settings_file = self.exam_result[0]["Series"] + self.exam_result[0]["Number"]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
KeyError: 'Series'
Код:
from pathlib import Path
import yaml
class Result:
def __init__(self):
super().__init__()
self.exam_result = []
def add_data(self, data):
self.exam_result.append(data)
@staticmethod
def get_root_dir():
return Path(__file__).absolute().parent
def save_exam_result(self) -> None:
name_settings_file = self.exam_result[0]["Series"] + self.exam_result[0]["Number"]
print(name_settings_file)
with open((self.get_root_dir() / "exam").joinpath(name_settings_file + ".yaml"), "w") as outfile:
new_dump = yaml.dump(self.exam_result)
outfile.write(new_dump)
return None
Пример списка, подаваемого на вход:
[{'CodeEducationalOrganization': 'gfdgd', 'PPECode': 'gdfg', 'NumberPC': 'dgd', 'NumberOption': 'gdgd', 'SettingsOption': '[Без дополнений]', 'CodeActivation': 'gdg'}]
Как исправить данную ошибку?
Ответы (1 шт):
Автор решения: ferz
→ Ссылка
Ошибка прямо говорит, что внутри словаря нет пары с ключом 'Series'. Также пары не будет и для 'Number' (исходя из примера, подаваемого на вход списка). Чтобы исправить ошибку нужно:
- добавить в словарь пары с ключами 'Series' и 'Number'
- либо проверить наличие пар с этими ключами
if 'Series' in exam_result[0].keys() and 'Number' in exam_result[0].keys():
name_settings_file = self.exam_result[0]["Series"] + self.exam_result[0]["Number"]
else:
<пары отсутствуют>