Как проанализировать и сохранить большую модель Pydantic в sqlalchemyPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как проанализировать и сохранить большую модель Pydantic в sqlalchemy

Сообщение Anonymous »

Я пишу свое первое приложение в FastAPI, которое сохраняет выходные данные словаря из другой программы. Этот вывод выглядит примерно так. В ключе заголовка в кортеже irl гораздо больше данных. Я просто сократил его для вопросов

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

{'worksheet': 'TASKS', 'row_index': 2, 'test_id': '12345', 'test_type': 'onsite', 'execute': 'OFF', 'header': ('ID', 'Execute', 'TaskName', 'Standard'), 'status': 'DONE'}
Что мне нужно сделать в первую очередь, чтобы создать pydantic модель для сериализации данных

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

class AdditionalData(pydantic.BaseModel):
ID: Optional[str] = None
Execute: Optional[str] = None
TaskName: Optional[str] = None
Standard: Optional[str] = None

class MainAction(pydantic.BaseModel):
worksheet: str
row_index: int
test_id: str
test_type: str
execute: str
header: AdditionalData
status: Optional[str] = None

class Config:
orm_mode = True

class MainActionCreate(pydantic.BaseModel):
pass

Когда проблема начинается с моделей sqlalchemy. Как мне их делать? Я написал модель для MainAction, так как она самая маленькая

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

class MainActionTable(Base):

__tablename__ = 'MainActionTable'
id = sql.Column(sql.Integer, primary_key=True, index=True)
test_id = sql.Column(sql.String)
status = sql.Column(sql.String)
row_index = sql.Column(sql.String)
test_type = sql.Column(sql.String)
execute = sql.Column(sql.Boolean, nullable=True)
worksheet = sql.Column(sql.String)
date_created = sql.Column(sql.DateTime, default=dt.datetime.utcnow)
date_last_updated = sql.Column(sql.DateTime, default=dt.datetime.utcnow)

но как мне сохранить заголовок, обратите внимание, что заголовок irl имеет примерно на 20 атрибутов больше
и в настоящее время вот мое «сохранение» метод"

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

def create_action_point(db: orm.Session, action_create: MainActionCreate):
action_point = MainActionTable(**action_create.dict())
db.add(action_point)
db.commit()
return action_point

action_tuple = data['action_case']
for x in action_tuple:
create_action_point(db = db, test_case = TestCasePoint(
test_id= x.test_id,
status= x.status,
row_index= x.row_index,
test_type= x.test_type,
execute= x.execute,
worksheet= x.worksheet
#header ????
))
Как создать подходящую модель для моих данных и как сохранить ее


Подробнее здесь: https://stackoverflow.com/questions/761 ... sqlalchemy
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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