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

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

前言

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

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

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

微信:xiaoxiongAI25

文章飞书云文档源链接:【小白使用视角】coze多维表格插件数据格式转换方法系统性介绍

文档正式内容:


一、coze多维表格插件数据格式的背景

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

二、方法一:使用【代码节点】转换多维表格数据格式

1. 工作流全流程

2. 代码节点转化格式的操作方法

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

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

3. 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. 工作流全流程

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

    步骤

    说明

    示例

    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. 无需付费

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

    大模型节点

    1. 使用相对简单

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

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

    五、附录

    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" :{
          "负责人" : " ",
          "项目名称" : " "
        },
        ...
        ]
      }

      您可能感兴趣的与本文相关的镜像

      Python3.9

      Python3.9

      Conda
      Python

      Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

      评论
      成就一亿技术人!
      拼手气红包6.0元
      还能输入1000个字符
       
      红包 添加红包
      表情包 插入表情
       条评论被折叠 查看
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值