Python遍历嵌套JSON字典查找指定ID及错误处理实现方案
解决通过ID定位字典条目的逻辑问题
原代码的核心问题是每遍历一个不匹配的条目就立刻提示错误并重新输入,没有等遍历完所有条目确认无匹配后再给出提示。正确的逻辑应该是先完整遍历所有条目,确认无匹配后再触发错误提示。
修正后的代码
# 假设你的数据已加载到data变量中 data = [ { "id": "lorem", "name": "lorem", "info": "lorem", "system": { "0": {"0": "initial question", "1": "lorem", "2": "lorem"}, "A": {"n": "lorem", "n": "lorem"} }, "result": {"n": "lorem", "n": "lorem"} }, # 可添加更多测试条目 {"id": "ipsum", "name": "ipsum", "info": "test data"} ] while True: query = input("Type in the id: ") matched_item = None # 遍历所有条目查找匹配ID for item in data: # 精确匹配用 ==,模糊包含匹配用 query in item["id"],按需选择 if item["id"] == query: matched_item = item break # 找到匹配项后终止遍历 # 根据查找结果处理 if matched_item: print("\nYou have selected:", matched_item["name"]) # 在这里编写后续操作逻辑,比如访问matched_item的其他字段 break # 找到后退出循环,若需重复查询可移除该break else: print("Classification not listed! Try again\n")
关键逻辑说明
- 用
matched_item变量存储找到的目标条目,初始为None - 直接遍历
data中的字典元素(比用索引遍历更简洁直观) - 遍历结束后统一判断是否找到匹配项:
- 找到则输出选中信息并执行后续操作
- 未找到则提示错误,进入下一轮输入循环
内容的提问来源于stack exchange,提问作者Sphenoidale
相关产品推荐
相关产品推荐

