使用sqlalchemy将字典列表批量复制到Postgres

时间:2018-10-19 14:26:32

标签: python postgresql sqlalchemy

我有一个字典list_dict的列表,如下所示:

[{u'default_bhp': False, u'price_period': u'Monthly'},{u'default_bhp': False, u'price_period': u'Yearly'}]

此刻,我正在使用以下命令将其插入到数据库中:

conn = engine.connect()
conn.execute(ModelClass.__table__.insert(), list_dict)

我只是想检查是否有更快的方法将数据插入数据库,因为我有大量的数据。

我们可以在这里使用批量copy还是其他东西吗?

如何使用use_batch_mode功能?如下所示:

 engine = create_engine('postgresql+psycopg2://postgres:postgres@localhost/test_db', use_batch_mode=True)
conn = engine.connect()
    conn.execute_batch(ModelClass.__table__.insert(), list_dict)

1 个答案:

答案 0 :(得分:0)

考虑使用bulk_insert_mappings(如果您还不知道这一点),这可能与您想要实现的目标最接近。

但是,如果您实际上有很多数据,急切地将其分解为字典列表可能不是一个好方法,因此您可能需要在bulk_insert之上进行分组/块管理< / p>