Получение аргумента ввода. Необязательно в PythonPython

Программы на Python
Anonymous
Получение аргумента ввода. Необязательно в Python

Сообщение Anonymous »

Я хотел бы создать типизированный DataFrame из класса Pydantic BaseModel, назовем его MyModel, который имеет необязательные поля. Когда я создаю несколько экземпляров MyModel, некоторые из них будут иметь необязательные поля со значениями None, и если я инициализирую DataFrame такими строками, они могут иметь несовместимые типы столбцов. Таким образом, я хотел бы привести необязательный[TypeX] к TypeX, например:

Код: Выделить всё

import pydantic
import pandas as pd
import numpy as np
from typing import Optional

class MyModel(pydantic.BaseModel):
thisfield: int
thatfield: Optional[str]
...

col_types = {kk: ff.annotation for kk, ff in MyModel.model_fields.items()}

pd.DataFrame(np.empty(0, dtype=[tuple(tt) for tt in col_types.items()]))
Это не удается из-за TypeError: невозможно интерпретировать 'typing.Optional[str]' как тип данных.
Мне нужна функция или метод Необязательно[X] -> X. Есть какие-нибудь предложения, кроме использования repr с регулярным выражением?

Подробнее здесь: https://stackoverflow.com/questions/789 ... -in-python

Вернуться в «Python»