如何使用Python中的动态键解析JSON文档?

时间:2016-03-10 13:51:33

标签: python json

我有一个看起来像这样的JSON文档:

{   
  "key1": "value1",
  "key2": {
    "random_value": {
       "keyX": {
          "keyY": "valueY",
      }
    }
  }
}

关键名称random_value不断变化,我想检索valueY。我如何在Python中执行此操作?

3 个答案:

答案 0 :(得分:1)

假设你的json在json(变量)

使用for循环,您可以检索随机值:

for value in json['key2']:

其中value是'random_value',但是如果你有更多的值,它将继续循环。然后你可以做这样的事情(在for循环中):

json['key2'][value]['keyX']['keyY']

所以你的代码看起来像这样:(这只是打印值)

json = # Your json defined in your post

for value in json['key2']:
    print(json['key2'][value]['keyX']['keyY'])

答案 1 :(得分:0)

您可以使用Python的json库:

>>> import json
>>> my_string = '{"key1": "value1", "key2": {"random_value": {"keyX": {"keyY": "valueY"}}}}'
>>> parsed = json.loads(my_string)
>>> parsed["key1"]
value1
>>> parsed["key2"].keys()[0]["keyX"]["keyY"]
valueY

它的作用:首先,使用json.loads()将json数据集转换为dict。

然后您只能通过传递键名来获取值:

>>> parsed["key1"]
value1

通过将dict转换为列表,您可以通过传递索引来获取值:

>>> parsed.keys()["key2"][0]["keyX"]["keyY"]
valueY

希望这能帮到你!

答案 2 :(得分:-1)

 mainDict=   {   
 "key1": "value1",
 "key2": {"random_value":{"keyx":{"keyy": "valuey"}}}}

  tempdict1 = maindict['key2']
  temparray1 = tempdict1.values()
  tempdict2 = temparray[0]
  temparray2 = tempdict2.values()
  tempdict3 = temparray2[0]
  valuey = tempdict3['keyy']

这将起作用