Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何找到JSON元素的匹配JSONPATH?_Python_Json_Jsonpath - Fatal编程技术网

Python 如何找到JSON元素的匹配JSONPATH?

Python 如何找到JSON元素的匹配JSONPATH?,python,json,jsonpath,Python,Json,Jsonpath,假设我们有一个结构未知的大json对象 例如,我们想从一个非常大的数据转储中提取用户ID,其中包含许多子键 我们只知道字段名是user\u id,但我们不知道确切的路径。它可能类似于$.db.users[*].user\u id或$.account[*].user\u id或其他任何内容 假设我们不想提取已被禁止的用户,那么应该搜索$.profiles.banked.user\u id之类的内容 因此,我想: 运行一些东西并映射我们的大JSON对象,在我们的例子中,所有可能的路径都包含指定的字段

假设我们有一个结构未知的大json对象

例如,我们想从一个非常大的数据转储中提取用户ID,其中包含许多子键

我们只知道字段名是
user\u id
,但我们不知道确切的路径。它可能类似于
$.db.users[*].user\u id
$.account[*].user\u id
或其他任何内容

假设我们不想提取已被禁止的用户,那么应该搜索
$.profiles.banked.user\u id
之类的内容

因此,我想:

  • 运行一些东西并映射我们的大JSON对象,在我们的例子中,所有可能的路径都包含指定的字段名(
    user\u id

  • 然后选择要用于提取字段的路径

  • 提取数据(然后我可以使用任何JsonPath库进行提取,所以这里没有困难)

  • 同样,目标是理解文档的结构,列出所有可能的JsonPath兼容路径(步骤1)

    然后我可以选择我想要使用的JsonPath并实际提取数据


    有什么办法吗?最好是在Python中(但不是强制性的)。

    可能是递归,您需要遍历整个字典,同时检查当前键是否是您要查找的键。可能是递归,您需要遍历整个字典,同时检查当前键是否是您要查找的键。