def _unfold_value(value, value_arg):
        if value_arg is not None:
            if isinstance(value, dict):
                val = value.get(value_arg)
                if val is not None:
                    return val

            index = utils.str_to_num(value_arg)
            if isinstance(value, list) and index is not None:
                return value[index]
        return value
    def _unfold_value(value, value_arg):
        if value_arg is not None:
            if isinstance(value, dict):
                val = value.get(value_arg)
                if val is not None:
                    return val

            index = utils.str_to_num(value_arg)
            if isinstance(value, list) and index is not None:
                return value[index]
        return value