数据操作
Data Operations 组件用于对 Data 对象执行操作,包括提取、过滤以及编辑其中的键和值。
所有可用操作请参阅可用数据操作。
组件最终会输出一个新的 Data 对象,其中包含执行所选操作后的结果。
在流程中使用 Data Operations
下面的示例演示如何在流程中使用 Data Operations,并处理 webhook 负载中的数据:
-
创建一个包含 Webhook 和 Data Operations 的流程,并将 Webhook 的输出连接到 Data Operations 的 Data 输入。
Data Operations 的所有操作都要求至少接收一个来自其他组件的
Data输入。 如果上游组件不产生Data输出,你可以先使用其他组件(例如 Type Convert 组件)把数据转换后再传进来。 或者,你也可以直接改用更适合原始数据类型的组件,例如 Parser 组件 或 DataFrame Operations 组件。 -
在 Operations 字段中选择你希望对输入
Data执行的操作。 本示例中请选择 Select Keys。提示每次只能选择一种操作。 如果你需要连续执行多个操作,可以把多个 Data Operations 组件串起来逐步处理。 如果是更复杂的多步骤转换,也可以考虑使用 Smart Transform 组件 这类更灵活的组件。
-
在 Select Keys 下为
name、username和email添加键。 点击 Add more 可为每个键新增一个字段。在本例中,我们假设 webhook 接收到的负载始终包含
name、username和email这几个键。 Select Keys 操作会从每个输入负载中提取这些键对应的值。 -
可选:如果你希望在 Playground 中看到结果,可将 Data Operations 的输出连接到 Chat Output 组件。

-
为了测试流程,可以向该流程的 webhook 端点发送如下请求。 更多说明请参阅通过 webhook 触发流程。
_26curl -X POST "http://$SKILLFLAW_SERVER_ADDRESS/api/v1/webhook/$FLOW_ID" \_26-H "Content-Type: application/json" \_26-H "x-api-key: $SKILLFLAW_API_KEY" \_26-d '{_26"id": 1,_26"name": "Leanne Graham",_26"username": "Bret",_26"email": "Sincere@april.biz",_26"address": {_26"street": "Main Street",_26"suite": "Apt. 556",_26"city": "Springfield",_26"zipcode": "92998-3874",_26"geo": {_26"lat": "-37.3159",_26"lng": "81.1496"_26}_26},_26"phone": "1-770-736-8031 x56442",_26"website": "hildegard.org",_26"company": {_26"name": "Acme-Corp",_26"catchPhrase": "Multi-layered client-server neural-net",_26"bs": "harness real-time e-markets"_26}_26}' -
要查看 Select Keys 操作生成的
Data,可以使用以下任一方式:- 如果你接了 Chat Output,可以打开 Playground 以聊天消息形式查看结果。
- 直接点击 Data Operations 组件上的 Inspect output。
Data Operations 参数
很多参数会根据当前选定的 Operation(operation)动态出现。
| Name | Display Name | Info |
|---|---|---|
| data | Data | 输入参数。要操作的 Data 对象。 |
| operation | Operation | 输入参数。要对数据执行的操作。详见可用数据操作。 |
| select_keys_input | Select Keys | 输入参数。要从数据中提取的键列表。 |
| filter_key | Filter Key | 输入参数。用于过滤的键。 |
| operator | Comparison Operator | 输入参数。比较值时采用的运算符。 |
| filter_values | Filter Values | 输入参数。用于过滤的值列表。 |
| append_update_data | Append or Update | 输入参数。要追加或更新到现有数据中的内容。 |
| remove_keys_input | Remove Keys | 输入参数。要从数据中移除的键列表。 |
| rename_keys_input | Rename Keys | 输入参数。要重命名的键列表。 |
| mapped_json_display | JSON to Map | 输入参数。用于选择路径的 JSON 结构。仅适用于 Path Selection 操作。更多说明见Path Selection 操作示例。 |
| selected_key | Select Path | 输入参数。用于提取值的 JSON 路径表达式。仅适用于 Path Selection 操作。更多说明见Path Selection 操作示例。 |
| query | JQ Expression | 输入参数。用于高级 JSON 过滤与转换的 jq 表达式。仅适用于 JQ Expression 操作。更多说明见JQ Expression 操作示例 |