【问题标题】:How to get the second level key's of JSON using python?如何使用 python 获取 JSON 的二级密钥?
【发布时间】:2018-02-14 15:51:49
【问题描述】:

下面是JSON文件的内容,我怎样才能只得到第二级的键,这意味着我应该能够存储像uid,passid,signbuttonid,logoIcon,cornerSettingMenu,logoutButtonId,overlayId,loaderInFunctionalPanel这样的键我应该能够使用 python 存储在列表或数组中。表示我需要喜欢

list[0]=  uid

list[1]=passid

list[2]=  signbuttonid

list[3]=logoIcon and so on . . . . . . 

{ “全球元素”: [ { "uid":"用户邮箱", “密码”:“用户密码”, "signbuttonid": "//按钮[@class='btn btn-mammoth']", "logoIcon":"//a[@class='logo text-hide']", "cornerSettingMenu":"//div[@class='dropdown-toggle']/p", "logoutButtonId":"//a[@class='logout']", "overlayId":"//div[@class='overlay']", "loaderInFunctionalPanel":"//div[@class='small-inline-loader']/child::i[@class='fa fa-spinner fa-pulse']" } ]

注意:我不需要那个值。我只需要钥匙。

任何人都可以帮助我解决这个问题。提前致谢。

【问题讨论】:

  • 只需使用 .keys() python dictionary docs从二级字典中获取键
  • 但它给出了整个 uid、passid、singbuttonid 等等,如果我只需要获取 uid 该怎么办??
  • 它为您提供了一个包含键的列表,就像您在问题中想要的那样

标签: python json parsing


【解决方案1】:

如果

import json

a={ "GlobalElements" :[ { "uid":"userEmail", "passid":"userPwd", "signbuttonid": "//button[@class='btn btn-mammoth']", "logoIcon":"//a[@class='logo text-hide']", "cornerSettingMenu":"//div[@class='dropdown-toggle']/p", "logoutButtonId":"//a[@class='logout']", "overlayId":"//div[@class='overlay']", "loaderInFunctionalPanel":"//div[@class='small-inline-loader']/child::i[@class='fa fa-spinner fa-pulse']" } ]}

a= json.dumps(a) #serialize dictionary to json

b=json.loads(a)  #unserialize json to get dictionary

获取键列表:

l= b["GlobalElements"][0].keys()
print l

[u'uid', u'logoutButtonId', u'logoIcon', u'signbuttonid', u'passid', u'overlayId', u'loaderInFunctionalPanel', u'cornerSettingMenu']

【讨论】:

  • 是的,这对我有帮助,使用像 l[0],l[1] 这样的索引对我有帮助,谢谢。
【解决方案2】:
a={ "GlobalElements" :[ { "uid":"userEmail", "passid":"userPwd", "signbuttonid": "//button[@class='btn btn-mammoth']", "logoIcon":"//a[@class='logo text-hide']", "cornerSettingMenu":"//div[@class='dropdown-toggle']/p", "logoutButtonId":"//a[@class='logout']", "overlayId":"//div[@class='overlay']", "loaderInFunctionalPanel":"//div[@class='small-inline-loader']/child::i[@class='fa fa-spinner fa-pulse']" } ]}

l= a["GlobalElements"][0].keys()
print l[0]
print l[1]
print l[2] so on or using for loop worked for me.

谢谢。

【讨论】:

    【解决方案3】:

    首先你需要导入 json 将您的 json 内容存储在变量中。如果它在文件中,则读取文件并将其存储在变量中。 使用 dumps() 和 load() 方法进行序列化和反序列化,只需将值如下代码所示

    import json
    
    x={ "GlobalElements" :[ { "uid":"userEmail", "passid":"userPwd", "signbuttonid": "//button[@class='some id']", "logoIcon":"//a[@class='some id']", "cornerSettingMenu":"//div[@class='dropdown-toggle']/p", "logoutButtonId":"//a[@class='logout']", "overlayId":"//div[@class='overlay']", "loaderInFunctionalPanel":"//div[@class='small-inline-loader']/child::i[@class='fa fa-spinner fa-pulse']" }  ] }
    
    x= json.dumps(x)
    
    y=json.loads(y)
    z= b["GlobalElements"][0].keys()
    

    这里z 将保存第二级的第一个值。

    【讨论】:

      猜你喜欢
      • 2020-04-24
      • 2019-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 1970-01-01
      • 2018-03-10
      • 1970-01-01
      相关资源
      最近更新 更多