<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def spec_validator(spec, key=operator.itemgetter):
 """ Take a spec in dict form, and return a function that validates objects The spec maps each object's key to a chain of validator functions. The ``key`` argument can be used to customize the way value matching a spec key from the object. By default, it uses ``operator.itemgetter``. It should be assigned a function that takes a key value and returns a function that returns the vale from an object that is passed to it. """

    spec = {k: (key(k), make_chain(v)) for k, v in spec.items()}

    def validator(obj):
        errors = {}
        for k, v in spec.items():
            getter, chain = v
            val = getter(obj)
            try:
                chain(val)
            except ValueError as err:
                errors[k] = err
        return errors

    return validator