Определите атрибут класса данных с зарезервированным словом «класс» и сериализуйте его - PullRequest
1 голос
/ 16 апреля 2019

Хорошо. Я пытаюсь определить класс данных для постановки в очередь задания в redis для специалиста sidekiq, спецификация полезной нагрузки sidekiq требует некоторых атрибутов в этом формате:

{
  "class": "SomeWorker",
  "queue": "default"
  "jid": "b4a577edbccf1d805744efa9", // 12-byte random number as 24    char hex string
  "args": [......],
  "created_at": 1234567890,
  "enqueued_at": 1234567890
 }

Итак, я определяю класс данных в своем коде Python:

@dataclass
class PusherNotificationJob:
   args: Any = None
   queue: str = "default"
   jid: str = secrets.token_hex(12)
   retry: bool = True
   created_at: datetime.datetime = time.time()
   enqueued_at: datetime.datetime = time.time()

   def asdict(self):
       return {** self.__dict__, "class": "SomeWorker"}

Моя проблема в том, что я не могу определить «класс» как атрибут PusherNotificationJob, потому что это зарезервированное слово. Поэтому мне нужно определить метод asdict для сериализации как dict и добавить атрибут «class», который я добавил здесь.

Есть лучший способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...