1. JSON 字符串(str
类型)
✅ 特征
- 表面是字符串(带双引号和转义符);
- 需要
json.loads()
才能变为结构化对象(dict
或 list
)使用。
示例(传入值):
"{\"items\": [{\"name\": \"Repo1\"}]}"
处理框架
import jsonif isinstance(params, str):try:data = json.loads(params)except json.JSONDecodeError:return {"result_text": "❌ JSON格式错误"}# 之后继续判断是 dict 还是 listitems = data.get("items", []) if isinstance(data, dict) else data
2. Python 字典(dict
类型)
✅ 特征
- 已经是解码后的结构化数据;
- 通常是一个键值对结构(可能含
"items": [...]
); - 可直接
.get()
取值。
示例(传入值):
{"items": [{"name": "Repo1"},{"name": "Repo2"}]
}
处理框架
if isinstance(params, dict):items = params.get("items", [])
3. Python 列表(list
类型)
✅ 特征
- 最外层就是一个列表;
- 每一项通常是一个对象(
dict
); - 用
for item in params:
即可直接访问。
示例(传入值):
[{"name": "Repo1"},{"name": "Repo2"}
]
处理框架
if isinstance(params, list):items = params
🔁 综合通用处理模板(推荐)
import jsonraw_data = args.params
if isinstance(raw_data, str):try:data = json.loads(raw_data)except json.JSONDecodeError:return {"result_text": "❌ JSON格式错误"}
else:data = raw_data
if isinstance(data, list):items = data
elif isinstance(data, dict):items = data.get("items", [])
else:items = []
for item in items:name = item.get("name", "(无名称)")