我在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')
没有结果。什么是正确的方法(尽可能简单)?谢谢!
答案 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中的价值