如何将字典列表插入到sqlalchemyflask

问题描述 投票:0回答:1

我有一个这样的词典列表:

[{'cx_agent': 'samir', 'supervisor': 'karim', 'convo_link': 'test', 'date_of_conversation': '11/01/2001', 'quality_agent': ''}, {'cx_agent': 'farah', 'supervisor': 'kazem', 'convo_link': 'test', 'date_of_conversation': '10/01/2002', 'quality_agent': ''}, {'cx_agent': 'captain', 'supervisor': 'ahmed', 'convo_link': 'helmy', 'date_of_conversation': '10/01/2003', 'quality_agent': ''}]

我想将其添加到此数据库中


class Base(DeclarativeBase):
    pass
#Initialize Database
db=SQLAlchemy(model_class=Base)
migrate = Migrate(app, db)

class Auditing(db.Model):
    id: Mapped[int] = mapped_column(Integer, primary_key=True)
    cx_agent: Mapped[str]= mapped_column(String,nullable=False)
    supervisor: Mapped[str] = mapped_column(String,nullable=False)
    convo_link: Mapped[str] = mapped_column(String,nullable=False)
    quality_agent: Mapped[str]=mapped_column(String,nullable=True)
    date_of_conversation: Mapped[Date]= mapped_column(Date,nullable=False)

我正在尝试使用此代码,但它不起作用

import gspread
import pandas as db
sa= gspread.service_account(filename="Keys.json")
sh= sa.open("Quality Auditing Queue")
wks=sh.worksheet("Queue")
queue= wks.get_all_records()
stmt=insert(Auditing).values(queue)
Session.bulk_insert_mappings(Auditing,queue)

队列 = 字典

python dictionary flask sqlalchemy flask-sqlalchemy
1个回答
0
投票

我找到了一种方法来解决这个问题,方法是在队列中进行循环并将结果添加到另一个字典中,然后调用添加和提交

for dict in queue:
    new_dict = Auditing(id=dict["id"],cx_agent=dict['cx_agent'] ,supervisor=dict["supervisor"],convo_link=dict['convo_link'],date_of_conversation=dict['date_of_conversation'],quality_agent=dict['quality_agent'])
    db.session.add(new_dict)
    db.session.commit()
return redirect(url_for('add_chats'))
© www.soinside.com 2019 - 2024. All rights reserved.