Форум сайта python.su
Я делаю запрос в базу и получаю ответ содержавший datetime.datetime(), после ответ передается декоратору jsonify которому есс-но не нравится объект datetime().
Собственно, можно ли средствами pymongo до декоратора не перебирая список словарей и формируя словарь для декоратора сделать преобразования полей datetime()?
что то вроде
dc.users.find({},{'name': 1, somefunc('birth': 1) })
Офлайн
Средствами pymongo нельзя да и не надо. Надо средствами модуля json, типа такого (выдернуто из проекта)
try:
from cjson import dump as _dump, dumps as _dumps, load, loads
except ImportError:
from json import dump as _dump, dumps as _dumps, load, loads
def default_handler(obj):
"""
Функция представляет собой обработчик нестандартных типов для сериализации
данных в JSON фомат.
:param obj: сериализуемый объект;
В рамках поддержки конверсии XXX в JSON мы должны помимо
сериализуемых в JSON типов данных поддерживать также и несериализуемые типы
данных, типа :class:`datetime.datetime`.
"""
from datetime import datetime
if isinstance(obj, datetime):
return obj.strftime("%Y%m%dT%H:%M:%S")
return obj
def dump(*args, **kwargs):
"""
Функция сериализации данных в файл в JSON формате. Вызывает одноименную
функцию из стандартного модуля :mod:`json` или :mod:`cjson`, но устанавливает
:func:`default_handler` как обработчик нестандартных типов.
"""
return _dump(*args, default=default_handler, **kwargs)
Отредактировано (Фев. 8, 2011 10:14:45)
Офлайн
Пасиба!
Офлайн