Python-如何检查JSON中的键是否为空值?

Python-如何检查JSON中的键是否为空值?,python,json,python-3.x,Python,Json,Python 3.x,在JSON中,我想检查和统计谁拥有学位(最高级别的学位,以及什么类型的学位),谁没有。在计算和检查硕士、博士等学位时,检查是否存在空值是有效的 JSON的一部分 "id": 125428, "Degree": "Master", 不同候选人: ""id": 125589, "Degree": null, "id": 944987, "Degree": "PhD" 不同候选人: ""id": 125589, "Degree": null, "id": 9

在JSON中,我想检查和统计谁拥有学位(最高级别的学位,以及什么类型的学位),谁没有。在计算和检查硕士、博士等学位时,检查是否存在空值是有效的

JSON的一部分

  "id": 125428,
  "Degree": "Master",
不同候选人:

  ""id": 125589,
  "Degree": null,
  "id": 944987,
  "Degree": "PhD"
不同候选人:

  ""id": 125589,
  "Degree": null,
  "id": 944987,
  "Degree": "PhD"
我的相关代码如下:

mastercounter = 0
phdcounter = 0
nodeegreecounter = 0

for candidate in response["person"]:
    if item["Degree"]:
        if item["Degree"]["key"] == "Master":
            mastercounter = mastercounter + 1
        if item["license"]["key"] == "PhD":
            phdcounter = phdcounter + 1
   if item["Degree"] == None: 
       nodegreecounter = nodegreecounter + 1
我得到的错误是“TypeError:“非类型”对象不可下标”


是识别错误,还是代码/我的全部逻辑错误

使用if/else怎么样

mastercounter = 0
phdcounter = 0
nodeegreecounter = 0

for candidate in response["person"]:
    if item["Degree"]:
        if item["Degree"]["key"] == "Master":
            mastercounter = mastercounter + 1
        if item["license"]["key"] == "PhD":
            phdcounter = phdcounter + 1
    else: 
       nodegreecounter = nodegreecounter + 1

使用if/else怎么样

mastercounter = 0
phdcounter = 0
nodeegreecounter = 0

for candidate in response["person"]:
    if item["Degree"]:
        if item["Degree"]["key"] == "Master":
            mastercounter = mastercounter + 1
        if item["license"]["key"] == "PhD":
            phdcounter = phdcounter + 1
    else: 
       nodegreecounter = nodegreecounter + 1

正确访问dict密钥

mastercounter = 0
phdcounter = 0
nodeegreecounter = 0

for candidate in response["person"]:
    if item["Degree"]:
        if item["Degree"] == "Master":
            mastercounter = mastercounter + 1
        if item["Degree"] == "PhD":
            phdcounter = phdcounter + 1
    else: 
       nodegreecounter = nodegreecounter + 1

正确访问dict密钥

mastercounter = 0
phdcounter = 0
nodeegreecounter = 0

for candidate in response["person"]:
    if item["Degree"]:
        if item["Degree"] == "Master":
            mastercounter = mastercounter + 1
        if item["Degree"] == "PhD":
            phdcounter = phdcounter + 1
    else: 
       nodegreecounter = nodegreecounter + 1

请参考以下URL了解您的问题和答案的所有详细信息:

希望有用


谢谢..享受编码

请参考下面的URL以了解您的问题和答案的所有详细信息:

希望有用


谢谢..享受编码

这取决于JSON的组织方式。我怀疑这是一系列人的反应。像这样:

response = [{"id": "1", "Degree": "Master"}, {"id": "2", "Degree": null}]
因此,您应该使用:

for person in response:
您只需要一个人的一个属性(名为“学位”)

因此,如果一个人是一系列属性,代码将变为:

for person in response:
    if person["Degree"] is None:
        nodegreecounter = nodegreecounter + 1
    elif person["Degree"] == "Master":
        mastercounter = mastercounter + 1
    elif person["Degree"] == "PhD":
        phdcounter = phdcounter + 1
如果JSON的组织方式不同,那么在征求建议之前应该解释JSON结构

如果您的JSON如下所示:

{"key11": {"id": "1", "Degree": "Master"}, "key12": {"id": "2", "Degree": null}}
代码可以是:

for key in response:
    if response[key]["Degree"] is None:
        nodegreecounter = nodegreecounter + 1
    elif response[key]["Degree"] == "Master":
        mastercounter = mastercounter + 1
    elif response[key]["Degree"] == "PhD":
        phdcounter = phdcounter + 1


这取决于JSON的组织方式。我怀疑这是一系列人的反应。像这样:

response = [{"id": "1", "Degree": "Master"}, {"id": "2", "Degree": null}]
因此,您应该使用:

for person in response:
您只需要一个人的一个属性(名为“学位”)

因此,如果一个人是一系列属性,代码将变为:

for person in response:
    if person["Degree"] is None:
        nodegreecounter = nodegreecounter + 1
    elif person["Degree"] == "Master":
        mastercounter = mastercounter + 1
    elif person["Degree"] == "PhD":
        phdcounter = phdcounter + 1
如果JSON的组织方式不同,那么在征求建议之前应该解释JSON结构

如果您的JSON如下所示:

{"key11": {"id": "1", "Degree": "Master"}, "key12": {"id": "2", "Degree": null}}
代码可以是:

for key in response:
    if response[key]["Degree"] is None:
        nodegreecounter = nodegreecounter + 1
    elif response[key]["Degree"] == "Master":
        mastercounter = mastercounter + 1
    elif response[key]["Degree"] == "PhD":
        phdcounter = phdcounter + 1


“键”从何而来?你希望
“PhD”[“键”]
产生什么结果?你可能需要跳过
[“键”]
并比较你的
项目[“学位”]=“硕士”
等等。“键”从何而来?你希望
“PhD”[“键”]
产生什么结果?你可能需要跳过
[“键”]
并比较你的
项目[“学位”]=“硕士”
等等。你为什么投票否决我?就因为你的反应迟到了D.P.S.请修复代码中的打印错误。@tkrishtop我没有投票否决你。让你的投票保持中立。你为什么投票否决我?就因为你的反应迟到了D.P.S.请修复代码中的打印错误。@tkrishtop我没有投票否决你。使你的投票中立。我没有想到一个简单的选择!成功了!我没有想到一个简单的办法!成功了!