def numberdict(dct):
    """ convert all numeric values in a dict to their appropriate type """
    o = {}
    for k, v in dct.items():
        if v.isdigit():
            v = int(v)
        else:
            try:
                v = float(v)
            except ValueError:
                v = v
        o.update({k: v})
    return o