仅从 heirachy JSON 文件中读取键值对

问题描述 投票:0回答:1

我只想读取内部键和值对,并想忽略父对象层次结构,例如“Logging->LogLevel”、“ConnectionStrings”、“AppSettings”、“AzureAd”。

此外,这些对象名称及其层次结构级别在不同的 JSON 文件中并不一致。

示例我只想打印/读取 Key1 & Value1、Key2 & Value2,但需要忽略 Logging & LogLevel。

同样只打印 Key3 和 Value3,但忽略对象“ConnectionStrings”。

也想忽略注释行。

JSON 文件:

{
  "Logging": {
    "LogLevel": {
      "Key1": "Value1",
      "Key2": "Value2",
    }
  },
  "ConnectionStrings": {
    "Key3": "Value3"
  },
  "AppSettings": {
    /// Commented Line
    "Key4": "Value4",
    //////////

    //Commented Line
  },
  "AzureAd": {
    "Key5": "Value5",
  }
}

输出应该是:

"Key1": "Value1",
"Key2": "Value2",
"Key3": "Value3",
"Key4": "Value4",
"Key5": "Value5"
json key-value
1个回答
0
投票

听起来你想打印字典的叶节点。如果你要在 python 中执行此操作,也许这样的事情就足够了:

def print_leaves(obj: dict):
  for key, value in obj.items():
    if isinstance(value, dict):
      print_leaves(value)
    else:
      print(key, value)

a = {
  "Logging": {
    "LogLevel": {
      "Key1": "Value1",
      "Key2": "Value2",
    }
  },
  "ConnectionStrings": {
    "Key3": "Value3"
  },
  "AppSettings": {
    "Key4": "Value4",
  },
  "AzureAd": {
    "Key5": "Value5",
  }
}

print_leaves(a)

输出:

Key1 Value1
Key2 Value2
Key3 Value3
Key4 Value4
Key5 Value5
© www.soinside.com 2019 - 2024. All rights reserved.