从路径python中提取Json值

rvl*_*007 3 python json

我有一个示例 Json,其中包含作为文件名的键和作为文件路径的值。例如:

{
  "sqlFiles":{
    "sqlQueryPath": "tmp/r/test.sql"
  },
  "csvFiles": {
    "firstSampleInput": "tmp/c/sample.csv",
    "secondSampleInput": "tmp/c/sample1.csv"
  }
}
Run Code Online (Sandbox Code Playgroud)

我有一个函数,它将键作为输入,将返回值作为输出。像这样的东西:

def readFilePath(key):
    with open('filePaths.json', 'r') as f:
        config = json.load(f)
        value = config[key]
        return value
Run Code Online (Sandbox Code Playgroud)

如果该键可用作根元素,那么我的函数完全可以工作,但如果该键以嵌套格式可用,就像它在 json 中一样,那么我的函数将失败。

我将使用 json 路径调用该函数,如下所示:

readFilePath("sqlFiles.sqlQueryPath")
Run Code Online (Sandbox Code Playgroud)

解析格式路径的函数需要进行哪些更改config["sqlFiles"]["sqlQueryPath"]

Rak*_*esh 5

这是一种方法。使用简单的迭代。

演示:

key = "sqlFiles.sqlQueryPath"

def readFilePath(key):
    config = {
          "sqlFiles":{
            "sqlQueryPath": "tmp/r/test.sql"
          },
          "csvFiles": {
            "firstSampleInput": "tmp/c/sample.csv",
            "secondSampleInput": "tmp/c/sample1.csv"
          }
        }

    for i in key.split("."):
        if i in config:
            config = config[i]
        else:
            return None


    return config

print(readFilePath(key))
Run Code Online (Sandbox Code Playgroud)