def run(self): for item in data: category = self.db.session.query(Category).filter( Category.name == item.get('name')).first() empty = not category if (not empty): for category_age in item.get('category_ages'): categoryAge = self.db.session.query(CategoryAge).filter( CategoryAge.category_id == category.id).first() emptyCategoryAge = not categoryAge if (emptyCategoryAge): categoryAge = CategoryAge() categoryAge.category_id = category.id categoryAge.since = category_age.get('since') categoryAge.until = category_age.get('until') if (emptyCategoryAge): self.db.session.add(categoryAge) if (empty): category = Category() category.name = item.get('name') category.duration_min = item.get('min') category.duration_max = item.get('max') if (empty): self.db.session.add(category) if (empty): self.db.session.commit() for category_age in item.get('category_ages'): categoryAge = CategoryAge() categoryAge.category_id = category.id categoryAge.since = category_age.get('since') categoryAge.until = category_age.get('until') self.db.session.add(categoryAge) self.db.session.commit()