如何在HomeAssistant中访问含未知键的嵌套JSON并统计指定数据?
解决方案
你的问题核心是原JSON的results字段是键名未知的字典,而非数组,所以直接用selectattr无法遍历到目标对象。需要先提取字典里的所有值,再进行过滤统计。
修正后的HomeAssistant模板表达式如下:
{{ value_json.results.values()|selectattr("id", "==", "as23")|selectattr("status", "eq", 1)|list|length }}
关键说明
value_json.results.values():将results这个字典中的所有值(即每个包含id、status的对象)提取为可遍历的集合,解决了键名未知的问题。- 后续的
selectattr和length逻辑和你原本的写法一致:先筛选出id为as23的对象,再从中统计status等于1的数量。
注:你提供的JSON存在语法错误(键名未加引号、末尾未闭合),实际使用时请确保接口返回标准的JSON格式。
内容的提问来源于stack exchange,提问作者thehiddentruth
相关产品推荐
相关产品推荐

