一、需求说明

例用豆包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编程

国内豆包:https://www.doubao.com

今日头条文章:《2026元宵奇妙游》不止东方美学,更有慈蒸日上的烟火气token

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐