调用Arduino IoT Cloud API的seriesV2HistoricData参数报错求助
解决Arduino IoT Cloud API seriesV2HistoricData接口properties参数传递错误
问题原因拆解
- 传入普通列表触发
TypeError: unhashable type: 'list':Arduino IoT Cloud的Python SDK对部分数组类型参数要求使用不可变序列(比如元组),因为列表是可变对象,无法被哈希,而SDK内部可能将参数用于需要哈希校验的请求构建环节。 - 使用
array模块报错:array的'u'类型仅支持单个Unicode字符,无法存储完整的字符串UUID,完全不适用该场景。
可行解决方案
方案1:改用元组传递参数
将列表替换为元组(圆括号包裹),直接满足SDK对不可变序列的要求:
api_series_instance.series_v2_historic_data( "2000-01-23T04:56:07.000+00:00", ("046b6c7f-0b8a-43b9-b35d-6489e6daee91", "046b6c7f-0b8a-43b9-b35d-6489e6daee91"), "2000-01-23T04:56:07.000+00:00" )
方案2:尝试逗号分隔的字符串格式
如果元组仍无法解决,部分SDK支持将数组参数转为逗号分隔的字符串传递:
api_series_instance.series_v2_historic_data( "2000-01-23T04:56:07.000+00:00", "046b6c7f-0b8a-43b9-b35d-6489e6daee91,046b6c7f-0b8a-43b9-b35d-6489e6daee91", "2000-01-23T04:56:07.000+00:00" )
内容的提问来源于stack exchange,提问作者Daddedebad
相关产品推荐
相关产品推荐

