【小白使用视角】coze多维表格插件数据格式转换方法系统性介绍

126 阅读11分钟

前言

  1. coze知识文档搭建的初衷:本人作为小白,实践学习AI和coze等工作流已有大半年的时间,深知作为一个小白从零开始学习的难度不小,并且本人搜索了全网各平台,对coze平台底层原理性介绍、具体详细操作介绍的视频和文档少之又少,但是coze中很多插件又缺乏详细具体使用的介绍,所以结合本地近半年大量的实践经验,希望能够整理一份系统性的coze工作流的知识库文档,并且免费开源供大家使用。

  2. coze知识文档搭建的期望:本人期望利用业余时间搭建一个入门小白视角可以使用的、系统性的coze知识文档,已经在持续更新中,具体规模大小还不确认,也许1万字?也许5万字?(先给自己定一个小目标哈哈哈🤣)总而言之,就是希望将自己实践的经验,可以开源分享给大家使用,大家也可以评论或添加我的微信,一起讨论更好的coze使用的方案

本文档仅为其中一小部分的介绍,为了方便大家咨询问题、讨论或者获取更多coze教程,也可以添加我的微信,希望可以和大家一起共建一个coze讨论社区!!

微信:xiaoxiongAI25

文章飞书云文档源链接:deio1xdmcj.feishu.cn/docx/W5n7dE…

文档正式内容:

一、coze多维表格插件数据格式的背景
  1. 前述讲到从多维表格搜索记录插件获取的数据,其对应的数据格式是字符串,字符串里面包了json对象的数据,我们实际上是要拿到json对象的数据,才能方便后续其他插件的使用。本质上就是要把数据从字符串格式转换成object对象格式。

暂时无法在飞书文档外展示此内容

二、方法一:使用【代码节点】转换多维表格数据格式
  1. 工作流全流程

  1. 代码节点转换格式的操作方法

    1. 直接编写python代码,把字符串格式转换为object对象格式,或数组(object对象格式)

    2. **【重点推荐,对新手友好】——AI写代码,**亲测按照以下顺序操作,代码一次运行成率高达95%以上

  2. AI写代码操作步骤

步骤

说明

示例

  1. 代码节点的输入关联多维表格节点的输出

在代码节点的输入中,关联上一个多维表格节点输出的变量,选择data数据节点或items数据节点都可以,只不过data数据节点包含的数据会更多,包含了hash_more、page_token数据;如果不需要的话,直接关联上items数据节点也可以

  1. 运行一次工作流

把其他节点先随便连接上,让整个工作流可以运行起来;然后获取多维表格传给代码节点的真实数据,并且复制下来备用

  1. 复制代码节点的示例代码

点开代码节点,点击【在IDE中编辑】,再选择【python】语言,然后把代码框中的所有内容,原封不动的复制下来备用

  1. 构建预期输出结果的数据格式【难点】

(需要熟悉数据结构类型)

我们要分析预期要得到的数据格式,然后撰写一个案例出来。比如示例中,多维表格里面是项目名称和负责人两个字段,然后一共5条记录,我们想要把5条记录都输出出来,那么转换成object对象存储的数据格式,并且总共有5条记录,那么一共会有5个object对象,这时候最好又用数组包起来,所以最后要输出的是数组(object对象)格式。如下:

{"data": [

"fields" :{

"负责人" : "张三",

"项目名称" : "项目1"

},

"fields" :{

"负责人" : "李四",

"项目名称" : "项目2"

},

...

]

}

示例多维表格记录

预期输出的结构

  1. 配置代码节点的输出

对照上面预期的输出结构,在代码节点配置变量名称和变量类型

  1. 配置一级变量名,即data数据节点➡️选择其数据类型,即数组(object对象)——Array(Object)

  2. 添加子项,即把数组里面的oject对象也输出➡️子项的变量名是fields,数据类型是object对象

  1. 撰写提示词,让AI生成代码

提示词包含4个部分:

  1. 需求描述

  2. 输入的数据

  3. 预期输出的数据格式

  4. 代码节点的示例代码

(详细提示词见附录)

然后把代码给Deepseek运行。

代码一次运行成功!!!

三、方法二:使用【大模型节点】转换多维表格数据格式
  1. 工作流全流程

  1. 大模型转换代码格式的操作步骤

步骤

说明

示例

  1. 大模型节点的输入关联多维表格节点的输出

在大模型节点的输入中,关联上一个多维表格节点输出的变量,选择data数据节点或items数据节点都可以,只不过data数据节点包含的数据会更多,包含了hash_more、page_token数据;如果不需要的话,直接关联上items数据节点也可以

  1. 运行一次工作流

把其他节点先随便连接上,先使用少量数据,让整个工作流可以运行起来;然后获取多维表格传给代码节点的真实数据,并且复制下来备用

  1. 构建预期输出结果的数据格式【难点】

(需要熟悉数据结构类型)

我们要分析预期要得到的数据格式,然后撰写一个案例出来。比如示例中,多维表格里面是项目名称和负责人两个字段,然后一共5条记录,我们想要把5条记录都输出出来,那么转换成object对象存储的数据格式,并且总共有5条记录,那么一共会有5个object对象,这时候最好又用数组包起来,所以最后要输出的是数组(object对象)格式。如下:

{"data": [

"fields" :{

"负责人" : "张三",

"项目名称" : "项目1"

},

"fields" :{

"负责人" : "李四",

"项目名称" : "项目2"

},

...

]

}

示例多维表格记录

预期输出的结构

  1. 撰写提示词,让AI生成代码

提示词包含4个部分:

  1. 需求描述

  2. 输入的数据

  3. 预期输出的数据格式

  4. 异常情况兼容

(详细提示词见附录)

四、使用建议

优先建议使用【代码节点】,稳定性较高;如果实在不会代码使用和调试,再使用大模型节点。

优点

缺点

代码节点

  1. 执行稳定性高

  2. 无需付费

  3. 代码生成和调试有一定难度

大模型节点

  1. 使用相对简单

  2. 执行可能存在不稳定,存在幻觉

  3. 使用官方模型,超过额度之后,需要付费

五、附录
  1. 多维表格数据格式转换代码Prompt

    一、提示词Prompt 需求:我现在正在使用coze的代码节点进行数据格式转换,输入的数据见下述第一点,输出的格式见下述第二点。你需要严格遵循下述第3点代码节点示例代码的逻辑和格式要求,给出完整的python代码,不要有任何的遗漏!!

    1. 输入的数据 { "input": { "has_more": false, "items": [ { "fields": "{"负责人":[{"type":"text","text":"张三"}],"项目名称":[{"text":"项目1","type":"text"}]}", "record_id": "reci1i6lVT" }, { "fields": "{"负责人":[{"text":"李四","type":"text"}],"项目名称":[{"text":"项目2","type":"text"}]}", "record_id": "recgmbJpp6" }, { "fields": "{"项目名称":[{"text":"项目3","type":"text"}],"负责人":[{"text":"王五","type":"text"}]}", "record_id": "reczTt3gr4" }, { "fields": "{"负责人":[{"text":"赵六","type":"text"}],"项目名称":[{"text":"项目4","type":"text"}]}", "record_id": "rec95bxK8Y" }, { "fields": "{"负责人":[{"text":"钱七","type":"text"}],"项目名称":[{"text":"项目5","type":"text"}]}", "record_id": "recU8qlUbN" } ], "page_token": null, "total": 5 } }

    2. 预期输出的数据格式(仅为格式示意,具体输出内容以输入的数据为准) {"data": [ "fields" :{ "负责人" : "张三", "项目名称" : "项目1" }, "fields" :{ "负责人" : "李四", "项目名称" : "项目2" } ] }

    3. 代码节点的示例代码 '''python

    在这里,您可以通过 '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 '''

    二、Deepseek输出的代码 根据需求,我将严格按照代码节点示例的逻辑和格式编写转换代码。以下是完整的解决方案:

    async def main(args: Args) -> Output: params = args.params input_data = params['input']

    # 构建输出数据结构
    data_list = []
    
    # 处理每个item
    for item in input_data['items']:
        # 解析fields字符串为字典
        fields_dict = eval(item['fields'])
        
        # 提取字段值
        processed_fields = {}
        for field_name, field_list in fields_dict.items():
            # 取列表中第一个元素的text值
            if field_list and isinstance(field_list, list) and field_list[0].get('text'):
                processed_fields[field_name] = field_list[0]['text']
        
        # 构建fields对象
        data_list.append({"fields": processed_fields})
    
    # 构建最终输出
    ret: Output = {"data": data_list}
    return ret
    

    代码说明:

    1. 输入获取
      • 通过 params = args.params 获取所有输入参数
      • 使用 input_data = params['input'] 获取输入数据
    2. 数据处理
      • 初始化 data_list 作为输出列表
      • 遍历输入中的每个 item
      • 使用 eval()fields 字符串解析为字典
      • 提取每个字段的第一个元素的 text
      • 构建符合要求的 fields 对象
    3. 输出构建
      • 将每个处理后的 fields 对象添加到 data_list
      • 最终返回 {"data": data_list} 格式

    注意事项:

    • 严格遵循了示例代码的异步函数格式和类型注解
    • 使用 eval() 处理 JSON 字符串(实际使用中建议替换为 json.loads()
    • 处理了字段顺序不一致的情况(如第三个项目)
    • 包含空值检查和类型验证
    • 输出格式完全符合需求示例

    此代码将输入数据转换为指定的输出格式,保留了所有原始数据项,并正确处理了字段值提取。

  2. 多维表格数据格式大模型节点提示词

    背景:现在想要将输入的数据进行格式转化,以便后续其他节点可以使用 需求:

    1. 将{{input}}的数据进行格式转换,转换后的格式代码例子如下,以下仅为格式示例,不是实际输出的结果,实际输出结果需要根据输入的实际数据进行转换,格式如下: {"data": [ "fields" :{ "负责人" : "张三", "项目名称" : "项目1" }, "fields" :{ "负责人" : "李四", "项目名称" : "项目2" }, ... ] }
    2. 需要做异常情况的兼容,如果输入的数据为空或其他分析异常,请不要中止执行,而是要按照上述第一点的数据结构输出,只是具体的值为空,例子如下: {"data": [ "fields" :{ "负责人" : " ", "项目名称" : " " }, "fields" :{ "负责人" : " ", "项目名称" : " " }, ... ] }