Python Возвращение библиотеки расписаний Flask jsonify ответ schedule.jobs - PullRequest
0 голосов
/ 04 мая 2020

В настоящее время я использую Python библиотеку расписаний в приложении Flask и хочу вернуть jsonify-ответ на мой schedule.jobs. Schedule.jobs возвращает список всех заданий в моем расписании по умолчанию. Schedule.jobs возвращает список объектов класса (список schedule.Job объектов ).

Мне известно, что библиотека Flask JSON не позволяет вам озвучивать список. Я пробовал json dumps, но получил следующую ошибку: TypeError: Object of type Job is not JSON serializable.

Как я могу вернуть jsonify-ответ моего списка объектов класса? Ниже приведен код:

import schedule
import time
>>> def geeks():
...     print("Shaurya says Geeksforgeeks")
... 
>>> def good_luck():
...     print("Good luck!")
... 
>>> def work():
...     print("Study hard work harder")
... 
>>> schedule.every(5).seconds.do(geeks)
Every 5 seconds do geeks() (last run: [never], next run: 2020-05-04 11:12:41)
>>> schedule.every(10).seconds.do(work)
Every 10 seconds do work() (last run: [never], next run: 2020-05-04 11:13:07)
>>> schedule.every(15).seconds.do(good_luck)
Every 15 seconds do good_luck() (last run: [never], next run: 2020-05-04 11:13:25)
>>> schedule.jobs
[Every 5 seconds do geeks() (last run: [never], next run: 2020-05-04 11:12:41), Every 10 seconds do work() (last run: [never], next run: 2020-05-04 11:13:07), Every 15 seconds do good_luck() (last run: [never], next run: 2020-05-04 11:13:25)]


>>> print(type(schedule.jobs))
<class 'list'>

>>> print(type(schedule.jobs[0]))
<class 'schedule.Job'>
>>> print(schedule.jobs[0])
Every 5 seconds do geeks() (last run: [never], next run: 2020-05-04 11:12:41)
>>> schedule_list = []
>>> for items in schedule.jobs:
...     schedule_list.append(items)
... 
>>> schedule_list
[Every 5 seconds do geeks() (last run: [never], next run: 2020-05-04 11:12:41), Every 10 seconds do work() (last run: [never], next run: 2020-05-04 11:13:07), Every 15 seconds do good_luck() (last run: [never], next run: 2020-05-04 11:13:25)]
>>> print(type(schedule_list[0]))
<class 'schedule.Job'>
>>> print(json.dumps(schedule_list))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/linda/opt/miniconda3/lib/python3.7/json/__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
  File "/Users/linda/opt/miniconda3/lib/python3.7/json/encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/Users/linda/opt/miniconda3/lib/python3.7/json/encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "/Users/linda/opt/miniconda3/lib/python3.7/json/encoder.py", line 179, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type Job is not JSON serializable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...