极奇策RPA技术教程:字符串转字典 (NodeStrToDict) - 自动化开发与配置详细指南

字符串转字典
📖 节点概述
将字符串解析为字典对象。支持多种输入格式:标准 JSON 对象(如 {"key":"value"})、Python 字典字面量(如 {'key':'value'})。如果输入不是字典类型(如数字、字符串、数组),会被包装为 {"_value": 输入内容} 的形式。解析失败则返回空字典 {}。该节点为纯数据节点,无执行端口。
💡 使用场景:
- 解析 API 响应:将从 HTTP 请求返回的 JSON 字符串转换为字典,便于字段提取。
- 配置文件读取:将 JSON 格式的配置字符串转为字典,用于流程参数初始化。
- 数据格式统一:将不同来源的字符串(JSON、Python 字典字符串)统一为字典对象。
- 动态参数构造:在流程中根据字符串内容动态生成字典,传递给下游节点。
- 存储数据还原:将之前序列化存储的字典字符串还原为原结构。
🎮 实战连线指南:如何正确使用它?
节点有一个输入端口 文本 和一个输出端口 字典。
场景案例:将 JSON 字符串转换为用户信息字典
- 输入文本:在“文本”多行文本框中填写:
{"name": "李四", "age": 30, "city": "北京"} - 获取结果:
字典输出{"name": "李四", "age": 30, "city": "北京"}。 - 后续使用:将该字典连接到【字典取值】节点,提取具体字段。
Python 字典字面量示例:
- 文本:
{'name': '王五', 'age': 25} - 输出:
{"name": "王五", "age": 25}(键名被转为双引号,但值类型保留)
非字典内容包装示例:
- 文本:
"hello" - 输出:
{"_value": "hello"}
空字符串输入:
- 文本:
""→ 输出{}
⚙️ 引脚与参数说明
📥 输入引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 文本 | STRING | 待解析的字符串。支持 JSON 对象字符串或 Python 字典字面量。 |
⚙️ 控件参数
| 控件名称 | 类型 | 说明 |
|---|---|---|
| 文本 | 多行文本框 | 手动输入字符串内容。当连线传入数据时,连线值优先。 |
📤 输出引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 字典 | DICT | 解析后得到的字典对象。若无法解析,返回空字典{}。 |
🔧 解析规则
节点按以下顺序尝试解析输入字符串:
- 标准 JSON 对象:使用
json.loads(),要求字符串为合法 JSON 格式(键必须双引号)。 - Python 字面量字典:使用
ast.literal_eval(),支持单引号、嵌套、布尔值、None 等。 - 如果上述两种方式都失败,返回空字典
{}。 - 如果解析后不是字典类型(例如 JSON 数组、数字、字符串),则包装为
{"_value": 解析结果}。
⚠️ 注意事项
- 空字符串:返回空字典
{},不会报错。 - JSON 格式要求:标准 JSON 要求键名必须使用双引号,字符串值也使用双引号。如果使用单引号,会被 Python 字面量方式兜底解析。
- 安全性:使用
ast.literal_eval()而非eval(),不会执行任意代码。 - 嵌套结构:支持嵌套字典和列表,会完整解析。
- 数字与布尔值:解析后数字会成为
int/float类型,true/false转为True/False。 - 包装行为:当输入不是字典时,会包装为
{"_value": 输入}。下游节点若期望纯字典,请注意这一行为。
💎 小贴士:
- 该节点与【字典转字符串】节点互为逆操作。
- 如果输入字符串为
null、true、false等 JSON 字面量,解析后会包装为{"_value": None}、{"_value": True}等。- 需要解析 JSON 数组时,请使用【字符串转列表】节点。
- 由于是纯数据节点,无需执行信号,可在数据流中直接使用。
这篇文档对您有帮助吗?
您的反馈将帮助我们持续优化文档内容

