ValueError в JSON файле
Я пытаюсь открыть json файл в реализации онтологии (работает как protege) и оно выдает ValueError, не объясняя дальше. Я не хочу трогать код, потому что он работал раньше и я думаю что проблема в json файле - я раньше таких не писал и не уверен в своих способностях.
{
"HierarchyName": "Студия",
"Structure": [
{
"Name": "Студия звукозаписи",
"Attributes": {},
"Parent": null,
"Instances": []
},
{
"Name": "Отдел кадров",
"Attributes": {},
"Parent": "Студия звукозаписи",
"Instances": []
},
{
"Name": "Артисты",
"Attributes": {
"Зарплата": {
"type": "NUM_SINGLE"
},
"InstanceName": {
"type": "STR_SINGLE"
},
"Дата рождения": {
"type": "STR_SINGLE"
},
"Должность": {
"type": "STR_SINGLE"
}
},
"Parent": "Отдел кадров",
"Instances": []
},
{
"Name": "Звуковики",
"Attributes": {
"Зарплата": {
"type": "NUM_SINGLE"
},
"InstanceName": {
"type": "STR_SINGLE"
},
"Дата рождения": {
"type": "STR_SINGLE"
},
"Должность": {
"type": "STR_SINGLE"
}
},
"Parent": "Отдел кадров",
"Instances": []
},
{
"Name": "Бухгалтерия",
"Attributes": {
"Зарплата": {
"type": "NUM_SINGLE"
},
"InstanceName": {
"type": "STR_SINGLE"
},
"Дата рождения": {
"type": "STR_SINGLE"
},
"Должность": {
"type": "STR_SINGLE"
}
},
"Parent": "Отдел кадров",
"Instances": []
},
{
"Name": "Руководство",
"Attributes": {
"Зарплата": {
"type": "NUM_SINGLE"
},
"InstanceName": {
"type": "STR_SINGLE"
},
"Дата рождения": {
"type": "STR_SINGLE"
},
"Должность": {
"type": "STR_SINGLE"
}
},
"Parent": "Отдел кадров",
"Instances": []
},
{
"Name": "Директор",
"Attributes": {},
"Parent": "Студия звукозаписи",
"Instances": []
},
{
"Name": "Аранжировщик",
"Attributes": {
"Зарплата": {
"type": "NUM_SINGLE"
},
"InstanceName": {
"type": "STR_SINGLE"
},
"Дата рождения": {
"type": "STR_SINGLE"
}
},
"Parent": "Директор",
"Instances": []
},
{
"Name": "Звукорежисер",
"Attributes": {
"Зарплата": {
"type": "NUM_SINGLE"
},
"InstanceName": {
"type": "STR_SINGLE"
},
"Дата рождения": {
"type": "STR_SINGLE"
}
},
"Parent": "Директор",
"Instances": []
},
{
"Name": "Композитор",
"Attributes": {
"Зарплата": {
"type": "NUM_SINGLE"
},
"InstanceName": {
"type": "STR_SINGLE"
},
"Дата рождения": {
"type": "STR_SINGLE"
}
},
"Parent": "Директор",
"Instances": []
},
{
"Name": "Администратор",
"Attributes": {
"Зарплата": {
"type": "NUM_SINGLE"
},
"InstanceName": {
"type": "STR_SINGLE"
},
"Дата рождения": {
"type": "STR_SINGLE"
}
},
"Parent": "Директор",
"Instances": []
},
{
"Name": "Исполнители",
"Attributes": {
"Зарплата": {
"type": "NUM_SINGLE"
},
"InstanceName": {
"type": "STR_SINGLE"
},
"Дата рождения": {
"type": "STR_SINGLE"
}
},
"Parent": "Директор",
"Instances": []
},
{
"Name": "Поэт",
"Attributes": {
"Зарплата": {
"type": "NUM_SINGLE"
},
"InstanceName": {
"type": "STR_SINGLE"
},
"Дата рождения": {
"type": "STR_SINGLE"
}
},
"Parent": "Директор",
"Instances": []
},
{
"Name": "Бухгалтер",
"Attributes": {
"Зарплата": {
"type": "NUM_SINGLE"
},
"InstanceName": {
"type": "STR_SINGLE"
},
"Дата рождения": {
"type": "STR_SINGLE"
}
},
"Parent": "Директор",
"Instances": []
}
],
"Instances": [
{
"ClassName": "Артисты",
"Values": {
"InstanceName": "Ребек Ф. А.",
"Зарплата": 70000,
"Дата рождения": "15.06.2001",
"Должность": "Композитор"
}
},
{
"ClassName": "Артисты",
"Values": {
"InstanceName": "Стонкс А. А.",
"Зарплата": 20000,
"Дата рождения": "15.06.2000",
"Должность": "Чтец"
}
},
{
"ClassName": "Артисты",
"Values": {
"InstanceName": "Джордан М. А.",
"Зарплата": 50000,
"Дата рождения": "15.06.1999",
"Должность": "Поэт"
}
},
{
"ClassName": "Звуковики",
"Values": {
"InstanceName": "Рейнер Р. А.",
"Зарплата": 55000,
"Дата рождения": "15.03.1999",
"Должность": "звукорежсер"
}
},
{
"ClassName": "Звуковики",
"Values": {
"InstanceName": "Мелон Н. О.",
"Зарплата": 30000,
"Дата рождения": "15.09.2001",
"Должность": "Композитор"
}
},
{
"ClassName": "Бухгалтерия",
"Values": {
"InstanceName": "Стокер Б.Д.",
"Зарплата": 70000,
"Дата рождения": "15.09.2001",
"Должность": "Бухгалтер"
}
},
{
"ClassName": "Руководство",
"Values": {
"InstanceName": "Аблер Ф.А.",
"Зарплата": 100000,
"Дата рождения": "15.12.2001",
"Должность": "Директор"
}
},
{
"ClassName": "Руководство",
"Values": {
"InstanceName": "Аарон П.В.",
"Зарплата": 60000,
"Дата рождения": "15.07.2002",
"Должность": "Администратор"
}
},
{
"ClassName": "Исплнители",
"Values": {
"InstanceName": "Ребек Ф. А.",
"Зарплата": 70000,
"Дата рождения": "15.06.2001"
}
},
{
"ClassName": "Исплнители",
"Values": {
"InstanceName": "Стонкс А. А.",
"Зарплата": 20000,
"Дата рождения": "15.06.2000"
}
},
{
"ClassName": "Исплнители",
"Values": {
"InstanceName": "Джордан М. А.",
"Зарплата": 50000,
"Дата рождения": "15.06.1999"
}
},
{
"ClassName": "Аранжировщик",
"Values": {
"InstanceName": "Рейнер Р. А.",
"Зарплата": 55000,
"Дата рождения": "15.03.1999"
}
},
{
"ClassName": "Звукорежисер",
"Values": {
"InstanceName": "Мелон Н. О.",
"Зарплата": 30000,
"Дата рождения": "15.09.2001"
}
},
{
"ClassName": "Композитор",
"Values": {
"InstanceName": "Стокер Б.Д.",
"Зарплата": 70000,
"Дата рождения": "15.09.2001"
}
},
{
"ClassName": "Администратор",
"Values": {
"InstanceName": "Аблер Ф.А.",
"Зарплата": 100000,
"Дата рождения": "15.12.2001"
}
},
{
"ClassName": "Бухгалтер",
"Values": {
"InstanceName": "Аарон П.В.",
"Зарплата": 60000,
"Дата рождения": "15.07.2002"
}
},
{
"ClassName": "Поэт",
"Values": {
"InstanceName": "Димп П.В.",
"Зарплата": 30000,
"Дата рождения": "14.07.2002"
}
}
],
"Queries": [
{
"In": "Студия звукозаписи",
"Attribute": "Зарплата",
"Relation": ">=",
"Value": 30000
},
{
"In": "Отдел кадров",
"Attribute": "Дата рождения",
"Relation": "=",
"Value": "15.06.2001"
},
{
"In": "Директор",
"Attribute": "InstanceName",
"Relation": "=",
"Value": "Стокер Б.Д."
}
]
}
Ошибка:
Диаграмма для онтологии:
Пробовал переписывать файл - у меня там были ошибки, но думаю они все еще есть и я засчет неопытности их не заметил
прикрепляю фрагмент кода:
def parse_from_json(self, filename):
try:
with open(filename, "r", encoding="utf-8") as data:
parsed_json = json.load(data)
self.name = parsed_json["HierarchyName"]
hier_data = parsed_json["Structure"]
instances_data = parsed_json["Instances"]
for classdata in hier_data:
cl = HClass(classdata["Name"])
# parse attributes
for name, batch in classdata["Attributes"].items():
cl.add_atr(name, batch["type"])
# add into hierarchy
if self.root_class is None and classdata["Parent"] is None:
self.root_class = cl
else:
parent = self.find_class(classdata["Parent"])
if parent is None:
del self.root_class
raise ValueError(cl.name + " has no parent in hierarchy!")
parent.subclasses.append(cl)
for instance in instances_data:
cl = self.find_class(instance["ClassName"])
if cl is None:
raise ValueError
inst_values = instance["Values"]
inst_name = inst_values["InstanceName"]
del inst_values["InstanceName"]
cl.create_instance(inst_name, inst_values)
if "Queries" in parsed_json:
self._queries = parsed_json["Queries"]
except ValueError as err:
if self.root_class:
del self.root_class # clean tree before exiting
raise err
Ответы (1 шт):
Автор решения: web developer
→ Ссылка
Почитайте документацию
Почему возникает данная ошибка вот документация по этому

