【Coze基础】Coze代码节点AI编程自动获取链接文章内容信息初实践
一、需求说明
例用豆包AI编程写代码,通过Coze的“代码”节点、“链接读取”和“飞书多维表格”插件,当输入文章链接时,输出对应的文章内容等
二、操作步骤
1、登录Coze,创建工作流AIdemo1,添加“代码”节点,并添加“链接读取”、“飞书多维表格”插件。目的:通过“链接读取”抓取用户url,再通过“代码”节点处理,处理的格式是“飞书多维表格”输入的格式,通过代码节点将连接读取输出的内容进行处理和打包交给飞书,最终写到飞书多维表格中



2、代码节点的输入为“连接读取”,保留一个输出records并设置为对象数组的格式

3、在飞书中创建多维表格,将权限设置为互联网获得链接的人可阅读,并复制链接,将链接粘贴到Coze工作流刚刚创建的“飞书多维表格”节点的app_token中,“飞书多维表格”节点的records输入选择为代码节点的records


4、利用豆包,编写“代码节点”中的代码需求
coze代码节点的基本框架如下:
# 在这里,您可以通过 'args' 获取节点中的输入变量,并通过 'ret' 输出结果
# 'args' 已经被正确地注入到环境中
# 下面是一个示例,首先获取节点的全部输入参数params,其次获取其中参数名为'input'的值:
# params = args.params;
# input = params['input'];
# 下面是一个示例,输出一个包含多种数据类型的 'ret' 对象:
# ret: Output = { "name": '小明', "hobbies": ["看书", "旅游"] };
async def main(args: Args) -> Output:
params = args.params
# 构建输出对象
ret: Output = {
"key0": params['input'] + params['input'], # 拼接两次入参 input 的值
"key1": ["hello", "world"], # 输出一个数组
"key2": { # 输出一个Object
"key21": "hi"
},
}
return ret
首先,
这是我的输入数据格式:
"data”:{
"content": “”
"images":
"title":""
}
我这里面的值都不是空值的,里面的值都是由上游节点转过来的,我就是每次需要把上游节点里面的这个三个值,修要重新整理以以下面格式进行输出
输出格式如下:
"records":{{
“fields”:“{\“文本\”:\“文本内容\“,\"单选\“:\“选顼 1\”,"日期\“:1674206443080}"}
我的需求是,你需要把我输入进去的内容,里面的内容都是变动的,不是空值的,然后从输入节点拿到的值再重新整理按照输出的格式给我输出,输出的内容按照表头为:标题,文本,图片链接进行输出,我要写入飞书多维表
AI编写的代码如下:

# Coze 工作流代码节点:整理数据输出为飞书多维表格式
import json # 引入json模块,用于规范转义
async def main(args: Args) -> Output:
# 1. 安全获取上游参数(全链路容错)
params = args.get('params', {})
data = params.get('data', {})
# 2. 提取核心字段(默认空字符串)
title = data.get('title', '')
content = data.get('content', '')
images = data.get('images', '')
# 3. 第一步:先构建原生字典(易读、易维护)
fields_dict = {
"标题": title,
"文本": content,
"图片链接": images
}
# 4. 第二步:将字典转为飞书接口要求的「转义JSON字符串」
# 替代手动拼接转义符,用 json.dumps 更规范,避免转义错误
fields_content = json.dumps(fields_dict, ensure_ascii=False)
# 5. 构建最终输出(飞书多维表标准格式)
ret: Output = {
"records": [
{
"fields": fields_content # 必须传字符串,而非字典
}
]
}
return ret
这里有一个注意点: fields = {“标题\”:title,“文本\”:content,“图片链接\”:images}为什么要改为fields_content = f'{{\“标题\”:\“{title}\“,\“文本\”:\“{content}\“,\“图片链接\”:\“{images}\"}}?
核心原因是:飞书多维表的写入接口对 fields字段的格式有明确要求—— 它需要的是转义后的字符串,而非原生字典
试运行结果如下:


这里有一个注意点:信息没有自动填入最上面的空白行,而是填到了第6行中。
原因如下:截图中第 1-5 行的 “空白”,实际上是已经存在的空记录(我手动点击过 “添加记录” 但没填内容),新记录永远会添加在表格的最后一行,而不是填充上面的空白行。
处理方法:方法1:选中第 1-5 行的行号,右键选择删除,再次执行代码。方法2:修改代码如下:
# Coze 工作流代码节点:更新指定行(覆盖第1行)
import json
async def main(args: Args) -> Output:
# 1. 安全获取参数
params = args.get('params', {})
data = params.get('data', {})
# 2. 提取字段
title = data.get('title', '')
content = data.get('content', '')
images = data.get('images', '')
# 3. 构建字段字典
fields_dict = {
"标题": title,
"文本": content,
"图片链接": images
}
fields_content = json.dumps(fields_dict, ensure_ascii=False)
# 4. 核心修改:指定要写入的行ID(替换为你第1行的实际ID)
TARGET_RECORD_ID = "recXXXXXXXXXXXX" # 替换为你的第1行ID
# 5. 构建更新结构(注意:不是数组,是单个对象,且包含recordId)
ret: Output = {
"recordId": TARGET_RECORD_ID,
"fields": fields_content
}
return ret
三、学习链接
B站基础学习教程链接:Coze节点-AI编程
今日头条文章:《2026元宵奇妙游》不止东方美学,更有慈蒸日上的烟火气token


更多推荐


所有评论(0)