В соответствии с эта таблица преобразования, Python ints записывается как JSON-номера при сериализации с использованием модуля JSON - как я ожидал бы и желал бы.
У меня есть словарь с целым и целочисленным значениями:
>>> d = {1:2}
>>> type(d.items()[0][0])
<type 'int'>
>>> type(d.items()[0][1])
<type 'int'>
Когда я использую модуль json для сериализации этой строки в строке JSON, значение записывается как число, но ключ записывается как строка:
>>> json.dumps(d)
'{"1": 2}'
Это не то поведение, которое я хочу, и он кажется особенно сломанным, так как он прерывает json.dumps/json.loads round-trip:
>>> d == json.loads(json.dumps(d))
False
Почему это происходит, и есть ли способ заставить ключ быть записанным как число?