使用python将字典列表插入到SQL表中

Qui*_*2k1 6 python sql python-3.x

我正在使用python和sql数据库的第一步,仍然不确定使用哪个包以及如何使用.我有一个大约300k字典的列表,每个字典大约有20个键.这些dicts应插入SQL表中.

在我看来,dict方法列表的优点是,我明确地命名了我想要输入特定值的列.(可能是,这不是一个好方法)

让我提出一个更具体的例子来捕捉我的问题的基本要素.该表由三列组成:ID(整数),Price(十进制),Type(字符串).Type支持空值.

我的dict的键具有相同的名称,而dicts列表可能如下所示:

lst = [{'ID':1, 'Price': '9.95', 'Type': None}, 
       {'ID':2, 'Price': '7.95', 'Type': 'Sports'}, 
       {'ID':3, 'Price': '4.95', 'Type': 'Tools'}, ...]
Run Code Online (Sandbox Code Playgroud)

所以出现的问题如下:

  1. 使用dicts的方法是正确的吗?(注意我有20列)
  2. 如果是/否:如何有效地执行此类查询?
  3. 是否有必要将价格转换为Decimal并在SQL语句之前,或者可以"实时"实现
  4. None值是否自动转换为null,还是有额外的工作要做?

ale*_*cxe 5

假设您使用的是符合Python 数据库 API规范的数据库驱动程序。

类型转换(问题 3 和 4)应该由开箱即用的数据库驱动程序处理。

至于2),有executemany()

cursor.executemany("""
    INSERT INTO 
        mytable
        (id, price, type)
    VALUES
        (%(id)s, %(price)s, %(type)s)
""", lst)
Run Code Online (Sandbox Code Playgroud)