Проблема в том, что вы пытаетесь вызвать jsonify()
для python объекта <Customer>
. Чтобы понять, почему это так, посмотрите на ваш вывод:
{
'draw': '1',
'recordsTotal': '13997',
'recordsFiltered': '13997',
'data': [{
'0': < Customer1 > ,
'1': 1
}, {
'0': < Customer2 > ,
'1': 2
}, {
'0': < Customer3 > ,
'1': 3
}, {
'0': < Customer4 > ,
'1': 4
}, {
'0': < Customer5 > ,
'1': 5
}, {
'0': < Customer6 > ,
'1': 6
}, {
'0': < Customer7 > ,
'1': 7
}, {
'0': < Customer8 > ,
'1': 8
}, {
'0': < Customer9 > ,
'1': 9
}, {
'0': < Customer10 > ,
'1': 10
}]
}
Внутри 'data'
у вас есть объекты, которые не могут быть автоматически сериализованы с помощью json.dumps()
, что эффективно делает jsonify()
для вас.
Чтобы исправить эту проблему, вам нужно изменить вывод, чтобы json.dumps()
имел более скучные типы данных для работы. Например:
for item in rowTable.output_result()['data']:
item['0'] = {
'customer_id': item['0'].id,
# and so on for the other properties you're interested in
}
Вы также можете написать функцию для класса <Customer>
, которая автоматически сериализует все важные свойства, и затем вы можете просто сделать что-то вроде:
for item in rowTable.output_result()['data']:
item['0'] = item['0'].serialized
и пример того, как это сделать в классе:
class Customer(Model):
id = Column(Integer)
# etc...
@property
def serialized(self):
return {
'id': self.id
}