Python从JSON中查找数据报字符串索引必须为整数错误如何解决
问题修复方案
触发报错的核心原因是遍历对象选择错误。你定义的data是顶层字典结构,直接对data执行遍历操作时,Python默认迭代返回的是字典的键(此处唯一的键为字符串"ports"),而非你预期的端口配置列表。当你尝试用i["sensor"]对字符串执行下标访问时,自然会触发「字符串索引必须为整数」的类型错误,该问题和sensor字段本身的数值类型没有关联。
修正后代码
data = { "ports": [ { "port": "A", "sensor": 4, "door": "pin0", "lights": "pin3" }, { "port": "Q", "sensor": 22, "door": "pin2", "lights": "pin44" } ] } def detect(sens): # 遍历ports字段对应的配置列表 for i in data["ports"]: if i["sensor"] == sens: print(i["port"]) print(i["door"]) print(i["lights"]) break
验证效果
调用示例:detect(4)
输出结果:
A pin0 pin3
内容的提问来源于stack exchange,提问作者Kagetaze
相关产品推荐
相关产品推荐

