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

2023-11-22

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

在我看来,字典方法列表的优点是,我明确命名要在其中输入特定值的列。 (这可能不是一个好方法)

让我举一个更具体的例子来抓住我的问题的本质。 该表由三列组成:ID(整数)、价格(小数)、类型(字符串)。 类型支持空值。

我的字典的键具有相同的名称,字典列表可能如下所示:

lst = [{'ID':1, 'Price': '9.95', 'Type': None}, 
       {'ID':2, 'Price': '7.95', 'Type': 'Sports'}, 
       {'ID':3, 'Price': '4.95', 'Type': 'Tools'}, ...]

所以出现的问题如下:

  1. 使用字典的方法正确吗? (请注意,我有 20 列)
  2. 如果是/或否:应该如何有效地执行这样的查询?
  3. 是否有必要在 SQL 语句之前将价格转换为十进制,或者可以“即时”实现
  4. None 值是否自动转换为 null,还是需要做额外的工作?

假设您正在使用Python 数据库 API 规范兼容的数据库驱动程序。

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

至于2),有executemany():

cursor.executemany("""
    INSERT INTO 
        mytable
        (id, price, type)
    VALUES
        (%(id)s, %(price)s, %(type)s)
""", lst)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 python 将字典列表插入 SQL 表中 的相关文章

  • 嵌套列表的重叠会产生不必要的间隙

    我有一个包含三个列表的嵌套 这些列表由 for 循环填充 并且填充由 if 条件控制 第一次迭代后 它可能类似于以下示例 a 1 2 0 0 0 0 0 0 4 5 0 0 0 0 0 0 6 7 根据条件 它们不重叠 在第二次迭代之后 新
  • 如何从Python中的函数返回多个值? [复制]

    这个问题在这里已经有答案了 如何从Python中的函数返回多个变量 您可以用逗号分隔要返回的值 def get name you code return first name last name 逗号表示它是一个元组 因此您可以用括号将值括
  • 在 Django Admin 中调整字段大小

    在管理上添加或编辑条目时 Django 倾向于填充水平空间 但在某些情况下 当编辑 8 个字符宽的日期字段或 6 或 8 个字符的 CharField 时 这确实是一种空间浪费 字符宽 然后编辑框最多可容纳 15 或 20 个字符 我如何告
  • PyQt 使用 ctrl+Enter 触发按钮

    我正在尝试在我的应用程序中触发 确定 按钮 我当前尝试的代码是这样的 self okPushButton setShortcut ctrl Enter 然而 它不起作用 这是有道理的 我尝试查找一些按键序列here http ftp ics
  • Pycharm 在 os.path 连接上出现“未解析的引用”

    将pycharm升级到2018 1 并将python升级到3 6 5后 pycharm报告 未解析的引用 join 最新版本的 pycharm 不会显示以下行的任何警告 from os path import join expanduser
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • GUI(输入和输出矩阵)?

    我需要创建一个 GUI 将数据输入到矩阵或表格中并读取此表单数据 完美的解决方案是限制输入表单仅允许float 例如 A 1 02 0 25 0 30 0 515 0 41 1 13 0 15 1 555 0 25 0 14 1 21 2
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • 使用 Python Oauthlib 通过服务帐户验证 Google API

    我不想使用适用于 Python 的 Google API 客户端库 但仍想使用 Python 访问 Google APIOauthlib https github com idan oauthlib 创建服务帐户后谷歌开发者控制台 http
  • 导入错误:没有名为flask.ext.login的模块

    我的flask login 模块有问题 我已经成功安装了flask login模块 另外 从命令提示符我可以轻松运行此脚本 不会出现错误 Python 2 7 r27 82525 Jul 4 2010 07 43 08 MSC v 1500
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • 如何将 ascii 值列表转换为 python 中的字符串?

    我在 Python 程序中有一个列表 其中包含一系列数字 这些数字本身就是 ASCII 值 如何将其转换为可以在屏幕上回显的 常规 字符串 您可能正在寻找 chr gt gt gt L 104 101 108 108 111 44 32 1
  • pandas - 包含时间序列数据的堆积条形图

    我正在尝试使用时间序列数据在 pandas 中创建堆积条形图 DATE TYPE VOL 0 2010 01 01 Heavy 932 612903 1 2010 01 01 Light 370 612903 2 2010 01 01 Me
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • 无效的选择器:使用 Selenium 时不允许出现复合类名错误

    我正在尝试通过 Web Whatsapp 打印聊天中的一条消息 我可以通过 控制台 选项卡中的 Javascript 来完成此操作 我就是这样做的 recived msg document getElementsByClassName XE
  • Spider 必须返回 Request、BaseItem、dict 或 None,已“设置”

    我正在尝试从以下位置下载所有产品的图像 我的蜘蛛看起来像 from shopclues items import ImgData import scrapy class multipleImages scrapy Spider name m
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • 如何将 Django 中的权限添加到模型并使用 shell 进行测试

    我在模型中添加了 Meta 类并同步了数据库 然后在 shell 中创建了一个对象 它返回 false 所以我真的无法理解错误在哪里或者缺少什么是否在其他文件中可能存在某种配置 class Employer User Employer in
  • 是否可以引用同一个表中的不同列?

    如果博客有一个 类别 表 如下所示 CREATE TABLE categories id INTEGER PRIMARY KEY AUTO INCREMENT parent id INTEGER NOT NULL name VARCHAR

随机推荐

  • 在客户端使用 dc.js,在服务器上使用 crossfilter

    我正在致力于为大型数据集创建交互式可视化 由于数据集大小 无法在浏览器中加载数据集 我们在节点服务器上使用 crossfilter 来加载和过滤服务器端的数据 我想知道是否可以以某种方式将服务器端交叉过滤器过滤器与 dc js 图表结合起来
  • 什么时候适合使用NOLOCK?

    我在一些长时间运行的查询中时不时地遇到超时问题和死锁 我想知道什么时候使用NOLOCK最合适 在哪里使用 我是否在更新和插入中使用它 或阅读 请注意 您可以在每个表的基础上指定 nolock 我通常在复杂的 SELECT 查询中使用 nol
  • 如何将 Spark 中的分类变量转换为一组编码为 {0,1} 的列?

    我正在尝试使用 Spark MLlib 使用 Scala 对包含分类变量的数据集执行逻辑回归 LogisticRegressionWithLBFGS 我发现 Spark 无法使用这种变量 在 R 中 有一种简单的方法来处理此类问题 我将变量
  • 为什么java主类中需要main()方法

    我知道我们可以在没有main 方法的情况下成功编译和运行java程序 但是为什么我们仍然需要在java的主类中使用main 方法呢 每个 Java 应用程序都必须包含一个 main 方法 其签名如下所示 public static void
  • 将项目附加到可变参数函数包装器而不重新分配新切片

    好的 我需要一个 fmt Printf 的小包装以方便调试 1 调用 fmt Fprintln 时参数过多 func Debug a interface if debug fmt Fprintln out prefix sep a 2 接口
  • 将 Django 连接到 Google Cloud SQL

    我正在尝试将 Django 连接到 Google 云 SQL 在 Windows 下使用 python 2 7 和 django 1 5 我浏览了此页面上的说明 https developers google com appengine d
  • 无需递归函数调用的排列

    要求 算法生成集合的所有可能组合 不重复 或递归调用函数返回结果 大多数 如果不是全部的话 的答案在JavaScript 中的排列 从循环或其他函数中递归调用函数以返回结果 循环内递归函数调用的示例 function p a b res v
  • phpMyAdmin 不显示添加的列

    自从我得到 phpMyAdmin 3 5 2 2 以来 出现了一个奇怪的问题 当我向特定表添加新列时 它不会显示在概述中 这个问题只出现在一张表上 其他都正常 在设置中找不到某些内容 我也有过这样的经历 XAMPP 1 8 1 PHP 5
  • 使单个函数适用于列表、字节字符串和文本(或许还有其他类似的表示形式)

    我正在编写一个函数 它可以在任意符号序列中进行一些搜索 我想让它足够通用 以便它可以在列表上运行 Foldable以及ByteStrings and Texts 将其概括为Foldable很简单 但如何包含ByteStrings and T
  • 等待 .NET 4.0 中的替代方案?

    NET 4 0 中await 关键字的最佳替代方案是什么 我有一个方法需要在异步操作后返回一个值 我注意到 wait 方法完全阻塞了线程 从而使异步操作变得无用 我可以选择哪些选项来运行异步操作 同时仍释放 UI 线程 我认为你的基本选择是
  • 为什么嵌套实例化中没有可用的 TypeTag(当由 scala 代码运行程序解释时)?

    我正在尝试改变的行为List toString根据其类型参数 自从List无法扩展 它由自定义类包装CList 可能是隐含的 但问题仍然是一样的 打印时出现问题CList of CLists 以下是示例和注释中的相应输出 object Fo
  • hibernate、mysql、glassfish v3 和 JTA 数据源

    我正在尝试将 hibernate 实体管理器与 mysql 和 glassfish 一起使用 尝试使用 JTA 数据源时出现以下错误 Caused by org hibernate HibernateException The chosen
  • Docker RUN ls 显示缓存文件

    我正在尝试设置一个 docker 容器并正在使用RUN ls帮助调试 然而 当我跑步时RUN ls docker 打印出以下内容 gt Using cache gt 96223b1b0748 我希望它注销文件夹中的文件 有谁知道会发生什么
  • 创建一个带有 Action 多个参数的任务

    我想在包含操作的任务中添加多个参数 我回顾了现有的堆栈溢出问题使用操作创建任务 请帮助我如何在任务的操作方法中传递多个参数 Action
  • 使滚动条在移动浏览器中可见

    当我有一个带有可滚动内容的网页时 使用CSS属性 overflow auto 或 overflow visible 滚动条在桌面浏览器上可见 但是当我在移动浏览器上打开页面时 滚动条仅在我尝试滚动时才会出现 有没有办法让滚动条在移动设备上始
  • Rails 中的 PG pg_ext 加载错误

    我最近更新到了 Rails 4 1 6 和 ruby 2 1 3p242 我还更新了系统上的所有宝石 创建新应用程序后 我在运行服务器时不断收到 pg ext 加载文件错误 我使用的是 Windows 8 x64 和 PostgreSQL
  • 在 JavaScript 中指定 eval() 的范围?

    有什么方法可以在特定范围内执行 eval 但不是全球性的 例如 以下代码不起作用 第二条语句中 a 未定义 因为它们位于不同的范围内 eval var a 1 eval alert a 如果可能的话 我想动态创建一个范围 例如 语法肯定是错
  • 我可以将变量从 Bash 脚本导出到环境中而不需要获取它吗?

    假设我有这个脚本 导出 bash usr bin env bash export VAR HELLO VARIABLE 当我执行脚本并尝试访问 VAR 我没有得到任何价值 echo VAR 有没有办法访问 VAR只需执行export bas
  • 获取通过“attr_accessor”定义的所有变量,而不覆盖“attr_accessor”

    我正在我的程序上设置一些跟踪代码 并且想知道哪些方法是通过定义的attr accessor Using TracePoint 我可以检测到什么时候attr accessor被调用 但我不知道如何让它告诉我它收到的参数 有任何想法吗 在问题标
  • 使用 python 将字典列表插入 SQL 表中

    我正在使用 python 和 sql 数据库迈出第一步 但仍然不确定要使用哪个包以及如何使用 我有一个包含大约 300k 个字典的列表 每个字典大约有 20 个键 这些字典应插入到 SQL 表中 在我看来 字典方法列表的优点是 我明确命名要