Robot Framework中无法从API JSON响应获取username/user_id的问题
API响应字段提取错误修正
问题根源
你的Robot Framework代码存在两处关键错误:
Get Json Value From String执行后,${origin}已经是API响应里的users列表,不存在content属性,这是触发类型错误的直接原因。users是数组结构(对应Robot Framework中的列表),不是单个字典对象,不能直接通过['username']取值,必须先指定列表中的元素索引。
修正代码方案
方案一:分步提取
${response}= GET ${Base_URL}/v1/sync/users ${data} headers=${header} # 提取完整的users列表 ${users_list}= Get Json Value From String ${response.content} users # 获取第一个用户的username和user_id ${target_username}= Set Variable ${users_list[0]['username']} ${target_user_id}= Set Variable ${users_list[0]['user_id']}
方案二:直接定位字段(更简洁)
可以通过JSON路径直接定位到目标字段,省去中间变量:
${response}= GET ${Base_URL}/v1/sync/users ${data} headers=${header} ${target_username}= Get Json Value From String ${response.content} users[0].username ${target_user_id}= Get Json Value From String ${response.content} users[0].user_id
多用户场景处理
如果users列表包含多个用户,需要遍历所有用户的字段时,可使用FOR循环:
${response}= GET ${Base_URL}/v1/sync/users ${data} headers=${header} ${users_list}= Get Json Value From String ${response.content} users FOR ${user} IN @{users_list} Log 用户名:${user['username']},用户ID:${user['user_id']} END
内容的提问来源于stack exchange,提问作者user3354840
相关产品推荐
相关产品推荐

