

def rekey(dikt):
    'Rekey a dict that has been forced to use str keys where there should be\n    ints by json.'
    for k in dikt.keys():
        if isinstance(k, str):
            ik = fk = None
            try:
                ik = int(k)
            except ValueError:
                try:
                    fk = float(k)
                except ValueError:
                    continue
            if (ik is not None):
                nk = ik
            else:
                nk = fk
            if (nk in dikt):
                raise KeyError(('already have key %r' % nk))
            dikt[nk] = dikt.pop(k)
    return dikt

dataset/ETHPy150Open ipython/ipython-py3k/IPython/utils/jsonutil.py rekey/original