加载嵌套在JSON文件的嵌套键中的语法

时间:2019-06-25 12:41:39

标签: python json

我在JSON文件中有一棵大树,我正在搜索python语法以从此JSON加载嵌套键中的嵌套。 假设我有这个:

{
  "FireWall": {
    "eth0": {
      "INPUT": {
        "PING": 1,
      }
    }
  }
}

根据手册页和Stackoverflow中的一些问题,我尝试了此操作(以及一些变体):

import json

config = open('config.json', 'r')
data = json.load('config')
config.close()

if data['{"FireWall", {"eth0", {"INPUT", {"Ping"}}}}'] == 1:
    print('This is working')

没有结果。什么是正确的方法(尽可能简单)?谢谢!

3 个答案:

答案 0 :(得分:1)

data是一个嵌套字典,因此:

data["FireWall"]["eth0"]["INPUT"]["Ping"] 

等于1;至少在将您的呼叫固定到json.load时会如此。

答案 1 :(得分:1)

您正在尝试data = json.load('config')加载字符串而不是文件对象,而data['{"FireWall", {"eth0", {"INPUT", {"Ping"}}}}']则不是访问嵌套字典键值的正确方法。

import json
with open('config.json', 'r') as f:
    data = json.load(f)

if data["FireWall"]["eth0"]["INPUT"]["Ping"] == 1:
    print('This is working')

答案 2 :(得分:0)

尝试一下:

data["FireWall"]["eth0"]["INPUT"]["PING"]

这将为您提供PING中的价值