我正试图通过python程序运行一个insert查询,查询数千条具有可为空字段的记录。我的要求是将结果集转换为字典中的键值对,然后将这些值解析为一个列表以执行insert查询。但是,当我尝试向int类型字段添加null值并通过程序执行insert时,遇到如下错误:
警告:(1366,“不正确的整数值:第1行“category\u id”列的“null”)result=self.\u query(query)
在mysql数据库中,如果我使用'category\u id'的值的'null'或'default'关键字执行查询,则该值会按预期更新为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)
2条答案
按热度按时间f1tvaqid1#
我认为null被转换为字符串,因此出现错误。您是否可以尝试传递值none,而不是“null”:
oyxsuwqo2#
对于需要整数的字段,mysql将null字段替换为0,0应该是默认值。
当您查询时,可以使用
IS NULL
选择空值的值,然后将该值操作为整数,例如0或者您可以通过添加
WHERE category_id IS NOT NULL
```SELECT *
FROM table
WHERE category_id IS NOT NULL