当前位置: 首页 > news >正文

【全网首发】解决coze工作流批量上传excel数据文档数据重复的问题

注意:目前方法将基于前一章批量数据库导入的修改!!!!请先阅读上篇文章的操作。抄袭注明来源

背景

上一节说的方法可以批量导入文件到数据库,但是无法解决已经上传的条目更新问题。简单来说,不会覆盖原始数据,只会在数据库后面增加新的条目,并没有达到更新数据的目的,只能说上一篇文章解决了运营阶段智能体能够和数据后台的连接,是一把钥匙。那么本文解决的就是更新的问题【在原始条目上】

思想来源

你需要注意的是,经过我不断测试下来,字节的这个SQL自定义采用的是Oracle的方式,普通的REPLACE等操作指令不认,会报SQL语句语法错误的问题。其次,如果你采用MERGE等操作手段,你会发现SQL语句过于繁琐,对大批量数据写入数据库不友好,插件难以制作。因此,本人不得已采用了一种方式,那就是先删除原始节点再上传,同时,我更新了插件代码,同步生成对应的DEL语句指令

插件2.0代码

from runtime import Args
#注意下面的 read_excels根据自己设置的插件名称会有调整。
from typings.test.test import Input, Output
import requests
import io
import pandas as pd
import re
def remove_apostrophe(input_str: str) -> str:"""移除字符串中的英文单引号"""return input_str.replace("'", "’")def handler(args: Args[Input])->Output:# 文档地址 urlurl = args.input.file_link# 数据库表明database_table = args.input.database_table# 数据库表字段名(注意:文档的表头名字必须与数据库表字段名相同)database_table_list = args.input.database_table_listresponse = requests.get(url)values_list = []del_list = []s = ""m = ""if response.status_code == 200:df = pd.read_excel(io.BytesIO(response.content))for index, row in df.iloc[0:].iterrows():for i in database_table_list:res = row[i]if i == "product_name":res = remove_apostrophe(row[i])if i == "erp_code":del_list.append(str(res))  # 直接添加完整的ERP代码s = f"{s}'{res}',"values_list.append(f"({s[:-1]})")s = ""for i in database_table_list:m = f"{m}{i},"del_content = f"DELETE FROM {database_table} WHERE erp_code IN ({', '.join(f"'{x}'" for x in del_list)});"content = f"INSERT INTO {database_table} ({m[:-1]}) VALUES {', '.join(values_list)};"else:content = f"无法从网址获取文件,状态码:{response.status_code}"del_content = f"无法从网址获取文件,状态码:{response.status_code}"return {"insert_output1":content, "del_output2":del_content}

工作流2.0修改部分展示(完整请私信我)

在这里插入图片描述

效果展示

在这里插入图片描述
都维持在20条,没有机械式的简单增加
在这里插入图片描述

相关文章:

  • ChatGPT再升级!
  • Linux——一键部署应用脚本
  • 大语言模型与多模态模型比较
  • Android trace中CPU的RenderThread与GPU
  • 【八股战神篇】Java高频基础面试题
  • Solon Ai Flow 编排开发框架发布预告(效果预览)
  • 系统架构设计师案例分析题——web篇
  • PD 分离推理的加速大招,百度智能云网络基础设施和通信组件的优化实践
  • 【串流VR手势】Pico 4 Ultra Enterprise 在 SteamVR 企业串流中无法识别手势的问题排查与解决过程(Pico4UE串流手势问题)
  • 强化学习算法实战:一个例子实现sarsa、dqn、ddqn、qac、a2c、trpo、ppo
  • STM32的ADC模块中,**采样时机(Sampling Time)**和**转换时机(Conversion Time),获取数据的时机详解
  • 2026《数据结构》考研复习笔记四(绪论)
  • GPU Runtime Suspend 调试与验证:从 sysfs 到 perf 分析
  • 气象科普的边界在哪?数字交互装置正在重新定义展厅教育形态!
  • 基于Rust语言的Rocket框架和Sqlx库开发WebAPI项目记录(二)
  • 《AI大模型应知应会100篇》第65篇:基于大模型的文档问答系统实现
  • 一种应用非常广泛的开源RTOS(实时操作系统):nuttx
  • 【HTML 全栈进阶】从语义化到现代 Web 开发实战
  • DDD领域驱动介绍
  • C++ asio网络编程(7)增加发送队列实现全双工通信
  • 特朗普称即将与伊朗达成核协议,外交部:中方愿继续发挥建设性作用
  • 美国将与阿联酋合作建立海外最大的人工智能数据中心
  • 秦洪看盘|缩量回踩,积蓄叩关能量
  • 鄂州交警通报致1死2伤车祸:女子操作不当引发,已被刑拘
  • 七旬男子驾“老头乐”酒驾被查,曾有两次酒驾两次肇事记录
  • 落实中美经贸高层会谈重要共识,中方调整对美加征关税措施