0
0 комментариев

Привет! Появилась необходимость получать данные из БД, и отдавать их в виде json клиенту, в связи с чем, начал пытаться писать свой кастомный класс обработчик для типа datetime.datetime.

Следующий код:

import jsonpickle
import datetime
 
class DatetimeHandler(jsonpickle.handlers.BaseHandler):
    def flatten(self, obj, data):
        return '/Date(%s+0800)/' % obj.strftime("%s")
 
jsonpickle.handlers.registry.register(datetime.datetime, DatetimeHandler)
 
print jsonpickle.encode(datetime.datetime.now())

Я пытаюсь вывести значение datetime в формане unixtime+timezone. В таком виде необходимо предоставлять значения для десериализации в C#.

но при попытке выполнить этот код появляется ошибка:

Traceback (most recent call last):[Finished in 0.1s with exit code 1]
  File "D:\date.py", line 10, in <module>
    print jsonpickle.encode(datetime.datetime.now())
  File "C:\Python27\lib\site-packages\jsonpickle\__init__.py", line 109, in encode
    return json.encode(j.flatten(value))
  File "C:\Python27\lib\site-packages\jsonpickle\pickler.py", line 141, in flatten
    return self._pop(self._flatten_obj_instance(obj))
  File "C:\Python27\lib\site-packages\jsonpickle\pickler.py", line 169, in _flatten_obj_instance
    flat_obj = handler.flatten(obj, data)
  File "D:\date.py", line 6, in flatten
    return '/Date(%s+0800)/' % obj.strftime("%s")
ValueError: Invalid format string

Изменен статус публикации
Добавить комментарий