Схема Python — тип Dict с несколькими типами значений ⇐ Python
-
Anonymous
Схема Python — тип Dict с несколькими типами значений
Отказ от ответственности: я новичок в Python, поэтому, пожалуйста, наберитесь терпения.
Я даже не уверен, возможно ли это вообще, но мы используем Schematics для проверки данных в Python, и у нас есть список словарей, которые могут иметь значения нескольких типов (например, список строк, список чисел, Список словарей и т. д.) Итак, моей первой попыткой было использовать тип Union.
Теперь модель выглядит так:
Фильтр класса (Модель): _id = ObjectIdType (по умолчанию = ObjectId) имя = ТипСтроки() фильтры = ListType(DictType(UnionType([ListType(StringType()), ListType(NumberType()),BooleanType(), StringType()]))) созданный_at = DateTimeType (по умолчанию = datetime.datetime.now) обновленный_at = DateTimeType (по умолчанию = datetime.datetime.now) Но по какой-то неизвестной причине isinstance() выдает мне ошибку, что arg 2 должен быть типом или кортежем типов (что, как мне кажется, означает, что только 2 типа могут быть унифицированы). Так что у меня немного закончились идеи. Я пытался написать собственную модель и использовать ModelType, но и это не зашло слишком далеко.
Заранее спасибо!
Отказ от ответственности: я новичок в Python, поэтому, пожалуйста, наберитесь терпения.
Я даже не уверен, возможно ли это вообще, но мы используем Schematics для проверки данных в Python, и у нас есть список словарей, которые могут иметь значения нескольких типов (например, список строк, список чисел, Список словарей и т. д.) Итак, моей первой попыткой было использовать тип Union.
Теперь модель выглядит так:
Фильтр класса (Модель): _id = ObjectIdType (по умолчанию = ObjectId) имя = ТипСтроки() фильтры = ListType(DictType(UnionType([ListType(StringType()), ListType(NumberType()),BooleanType(), StringType()]))) созданный_at = DateTimeType (по умолчанию = datetime.datetime.now) обновленный_at = DateTimeType (по умолчанию = datetime.datetime.now) Но по какой-то неизвестной причине isinstance() выдает мне ошибку, что arg 2 должен быть типом или кортежем типов (что, как мне кажется, означает, что только 2 типа могут быть унифицированы). Так что у меня немного закончились идеи. Я пытался написать собственную модель и использовать ModelType, но и это не зашло слишком далеко.
Заранее спасибо!