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



我有这个数据指的是一个表格。我必须使用 sql 炼金术将其插入表中。我想使用行列表在表中插入一批行(现在我有三行,但我会有大约 50.000 行(,就像 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"]
        ]

您可以使用 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)

最新更新