为何Python代码报错NameError: name 'wantedKey1' is not defined?
分析NameError: name 'wantedKey1' is not defined的原因及修复方案
这个错误的根源其实很清晰,咱们一步步拆解:
核心问题:变量未定义+大小写不一致
变量从未被定义
Python要求使用任何变量前必须先给它赋值定义。你代码里的wantedKey1从头到尾都没有被赋值过,Python根本不知道这个名字对应的是什么内容,所以执行到打印语句时直接抛出NameError。大小写拼写不一致
你在if判断里写的是wantedkey1(全小写),但打印时用的是wantedKey1(驼峰式)——Python对标识符的大小写是严格敏感的,这两个在Python眼里是完全不同的变量名,就算你定义了其中一个,另一个还是会报错。
修复后的代码示例
首先你需要先明确wantedKey1的具体值,也就是你要查找的键名,然后统一变量名的大小写:
# 先定义你要查找的目标键名 wantedKey1 = "your_target_key" # 替换成你实际要找的键 json_data = '{"sample_key": {"entry": [{"your_target_key": "sample_value"}]}}' # 示例JSON数据 for key, di in json.loads(json_data).items(): if wantedKey1 in di['entry'][0]: # 统一使用正确的变量名 print("found") found = True print(found) print(f"{wantedKey1} : {di['entry'][0][wantedKey1]}") break
额外注意事项
- 始终确保变量名大小写完全一致,避免因为拼写细节导致的错误;
- 所有要使用的变量必须先赋值定义,Python不会自动推断你想引用的变量内容。
内容的提问来源于stack exchange,提问作者Nitin Punekar
相关产品推荐
相关产品推荐

