def pick(d, *fields):
    """ Pick keys from a dictionary if present.

    If a field starts with a '+' it is converted to a list if it isn't one
    already.
    """
    result = {}
    for f in fields:
        listify = f.startswith('+')
        if listify:
            f = f[1:]
        if f in d:
            value = d[f]
            if listify and not isinstance(value, (list, tuple)):
                value = [value]
            result[f] = value
    return result
