山茶花开时。 2023-08-31 10:28 采纳率: 55.6%
浏览 6

如何解决sql语句插入一列数值出现空值情况(相关搜索:数据处理)

我这样一张Mysql数据表

img

先前使用Flask写了一个数据处理配置接口,第一次调用该接口传递指定参数,对指定列进行处理返回如下结果

img

但再次调用该接口处理其他列的时候,返回如下结果

img

如何返回如下结果?

img

该接口核心代码大致如下

             # 获取数据值
            datas = res[0]   # ['FOL', 'FOL', 'FOL', 'FOL', 'FOL', 'FOL', 'FOL', 'FOL']
            # 获取字段名
            col = res[1]  # Site
            # 查询output_table数据表中存在的字段名
            new_field = view_datasheet_field('output_table')
            print(new_field)
            if col in new_field:
                # 执行插入sql语句
                sql = f"INSERT INTO output_table ({col}) VALUES (%s)"
                # sql = f"UPDATE output_table SET {col}=(%s);"
                # 插入数据
                for data in datas:
                    cursor.execute(sql, (data,))
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-31 12:48
    关注

    【以下回答由 GPT 生成】

    根据您的描述,当再次调用接口处理其他列时,返回的结果出现了空值。为解决这个问题,我建议您在执行SQL语句插入空值之前,先判断一下参数是否为空,如果为空则跳过该参数的处理。

    以下是一个可能的解决方案:

    # 获取数据值
    datas = res[0]   # ['FOL', 'FOL', 'FOL', 'FOL', 'FOL', 'FOL', 'FOL', 'FOL']
    # 获取字段名
    col = res[1]  # Site
    # 查询output_table数据表中存在的字段名
    new_field = view_datasheet_field('output_table')
    print(new_field)
    if col in new_field:
        # 执行插入sql语句
        sql = f"INSERT INTO output_table ({col}) VALUES (%s)"
        # sql = f"UPDATE output_table SET {col}=(%s);"
        # 插入数据
        for data in datas:
            if data is not None:
                cursor.execute(sql, (data,))
    

    在上述代码中,使用了一个简单的判断语句 if data is not None 来判断参数是否为空,只有当参数不为空时才执行SQL语句插入操作。

    这样就可以避免将空值插入数据库,从而解决返回结果出现空值的问题。

    希望以上解决方案对您有所帮助,如果还有其他问题,请随时提问。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 8月31日