MIT App Inventor 2嵌套字典数据访问问题求助
在MIT App Inventor 2中访问嵌套字典与列表数据
嘿,我来帮你搞定这个嵌套数据访问的问题!你的数据结构里混合了字典和列表,只要一步步拆解层级,就能轻松拿到想要的内容,比如那个min_price。
先帮你理清楚数据的层级结构,这样你能更明白:
- 最外层是一个字典,包含
keystatus、status、result三个键 result对应的值是一个列表(注意方括号[]),列表里的第一个元素是另一个字典- 这个字典里的
stores又是一个字典,它的键是0,对应的值是包含min_price、manufacturer等字段的商家详情字典
接下来我一步步教你怎么用App Inventor的积木拿到min_price:
步骤1:假设你的数据存在变量中
先把整个数据结构存到一个变量里,比如叫apiResponse(你可以根据自己的变量名调整)。
步骤2:逐层拆解获取目标值
- 先拿到
result列表
拖一个「获取字典值」积木,设置键为result,数据源选择你的apiResponse变量,这样就能得到result对应的列表。 - 从
result列表中取第一个元素
App Inventor的列表索引是从1开始的(不是0!这点要注意),拖一个「选择列表项」积木,把上一步得到的result列表放进去,索引填1,得到的就是包含stores的那个字典。 - 拿到
stores字典
再拖一个「获取字典值」积木,键设为stores,数据源是上一步的结果,这样就得到了stores字典。 - 拿到
0对应的商家详情字典
继续拖「获取字典值」积木,键设为0,数据源是stores字典,现在你就拿到了那个包含min_price的商家信息字典。 - 最终获取
min_price
最后拖一个「获取字典值」积木,键设为min_price,数据源是上一步的商家字典,这样就能直接拿到64.90这个值了!
积木组合的伪代码示意
如果用文字串起来,大概是这样的:
apiResponse → 获取值 "result" → 选择列表项 索引1 → 获取值 "stores" → 获取值 "0" → 获取值 "min_price"
扩展:如果有多个商家或列表元素怎么办?
如果你的result列表里有多个元素,或者stores里有多个键(比如0、1、2),可以用「遍历列表」积木:
- 先遍历
result列表,处理每个元素里的stores - 再用「获取字典的键列表」积木拿到
stores的所有键,遍历这些键就能逐个访问每个商家的详情啦
内容的提问来源于stack exchange,提问作者Lalo Quintana
相关产品推荐
相关产品推荐

