python - 如何在Python中使用MySQL的NULL和DEFAULT关键字进行INSERT查询?

标签 python mysql pymysql

我正在尝试通过 python 程序对数千条也具有可为空字段的记录运行 INSERT 查询。我的要求是,将结果集转换为字典中的键值对,然后将值解析为列表以执行 INSERT 查询。但是,当我尝试向 int 类型字段添加 NULL 值并通过程序执行 INSERT 时,出现错误,如下所示:

Warning: (1366, "Incorrect integer value: 'NULL' for column 'category_id' at row 1") result = self._query(query)

在 MySQL 数据库中,如果我使用“NULL”或“DEFAULT”关键字对“category_id”的值执行查询,该值将按预期更新为 NULL。

有人可以帮我把我在这里缺少的东西归零吗?以下是我的代码片段:

    for s in result:
        temp_dict = {}
        for key, value in enumerate(s):
            if value is None:
                temp_dict[key] = pymysql.NULL
            else:
                temp_dict[key] = str(value)

最佳答案

我认为 null 正在转换为字符串,因此出现错误 您可以尝试传递值 None,而不是“NULL”:

value = None
cursor.execute("INSERT INTO table (`column1`) VALUES (%s)", (value,))

关于python - 如何在Python中使用MySQL的NULL和DEFAULT关键字进行INSERT查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52479137/

相关文章:

php - 使用正则表达式检查 MySQL 查询值中的 '%' 字符

python - 如何从 python 在 mysql 中创建存储过程?

python - 如何使用 PyMySQL 将 Pandas Dataframe 插入 MySql

python - Django,将HTML放入模板时自动出现HTML "sanitizing",如何停止?

python - 如何显示django类别名称而不是Category对象(一)

php - 需要一个唯一的电子邮件地址

php - 优化使用 Magento 的网站

python - 需要 mysqlclient 1.3.3 或更新版本;你有 0.7.11.None

python - 如何最小化 3 线性拟合的卡方

python - 对 def __init__ 中的 __init__ 方法感到困惑