Я пытаюсь отправить список записей в ответ на запрос Ajax. Это работает хорошо, если результаты не включают поле даты и времени, когда мой процесс завершается с ошибкой datetime.date(2011, 11, 1) is not JSON serializable
.
Я попытался объединить найденный ответ с очень подобным вопросом здесь с инструкциями в документации CherryPy , чтобы использовать собственный кодер json_out, но мне не ясно, какая подпись эта функция должна иметь. Функция, которую я написал:
def json_encoder(thing):
if hasattr(thing, 'isoformat'):
return thing.isoformat()
else:
return str(thing)
и теперь любое использование json_out (даже без даты и времени в выходных данных) дает мне ошибку TypeError: json_encoder() takes exactly 1 argument (0 given)
. Но если кодировщик не принимает аргумент, как он получает объект для кодирования?
(Кроме того, я предполагаю, что мое использование str(thing)
в качестве метода кодирования по умолчанию является неправильным и что это должно быть сделано с помощью вызова любого обработчика по умолчанию для кодирования json, но я не уверен, как вызывать этот метод).