使用python和sql alchemy在postgres中从列表列表中插入批处理

2024-04-18 15:51:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个表格的数据。我必须使用sql炼金术将它插入表中。我想使用rows list在表中插入一批行(现在我有三行,但是我将有大约50000行),就像elasticsearch中的bluk,但是使用postgres。你能给我一些想法或代码示例吗?提前谢谢你的帮助。在

fields = ["NAME", "MACHINE", "PRE", "DATE", "COMP"]
rows = [
          ["ECO", "A07", 6, "2016-03-07", "Card"], 
          ["LIN", "A01", 1, "2016-03-07", "Reader"], 
          ["SUM", "A02", 2, "2016-03-07", "Scanner"]
        ]

Tags: 数据代码name示例fieldssqlpostgresmachine
1条回答
网友
1楼 · 发布于 2024-04-18 15:51:56

您可以使用SQLAlchemy Core API,它在传递字典列表时自动执行大容量插入。在

示例:

engine = sqlalchemy.create_engine(db_url, echo=True) # echo for testing
db = engine.connect()
meta = sqlalchemy.MetaData()
foo_table = sqlalchemy.Table('foo', meta, autoload=True, autoload_with=engine)
foo_ins = foo_table.insert()

# fields, rows - as assigned in the question
xs = [ { k: v for k, v in zip(fields, row) } for row in rows ]

db.execute(foo_ins, xs)

相关问题 更多 >