小编Bri*_* M.的帖子

SQLAlchemy 插入executemany 函数

我正在尝试通过 SQLAlchemy 将字典列表批量插入到 MySQL 数据库中。在列表中,每个字典都有时间和温度。时间值采用 ISO 时间字符串形式。我试图让 MySQL 使用 STR_TO_DATE 函数来创建日期时间对象以存储到数据库中。

我已经通过 insert().values({'time':func.STR_TO_DATE(row.time, date_str), 'temp' = row.temp}) 成功完成了这项工作

示例代码:

import sqlalchemy
from sqlalchemy import create_engine, MetaData, Table, Column, func
from sqlalchemy.dialects.mysql import DATETIME, INTEGER, insert

temp_data = [{'time':'2019-02-07T14:01:00.000000000Z', 'temperature':68},
             {'time':'2019-02-07T14:02:00.000000000Z', 'temperature':69},
             {'time':'2019-02-07T14:03:00.000000000Z', 'temperature':70},
             {'time':'2019-02-07T14:04:00.000000000Z', 'temperature':71}]


date_string = '%Y-%m-%dT%H:%i:%S.%f000Z'
mysql_metadata = MetaData()
mysql_table = Table('temperature', mysql_metadata,
                    Column('time', DATETIME(fsp = 6), primary_key = True),
                    Column('temperature', INTEGER()))

def single_insert():
    engine = create_engine('mysql://test_user:test@localhost/temperature',
                                  echo = False)
    mysql_table.drop(engine, checkfirst = True)
    mysql_table.create(engine)
    conn = engine.connect() …
Run Code Online (Sandbox Code Playgroud)

python mysql sqlalchemy

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

mysql ×1

python ×1

sqlalchemy ×1