在python中获取数组值的objectpath json查询

2024-06-16 09:36:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些JSON,如下所示:

{
"books": [
    {
        "name": "Matthew"
    },
    {
        "name": "Mark",
        "sections": [
            {
                "reference": "1:1-1:8",
                "tags": [
                    "a",
                    "b"
                ],
                "summary": "blah",
                "notes": ""
            },
            {
                "reference": "1:9-1:15",
                "tags": [
                    "b",
                    "c",
                    "d"
                ],
                "summary": "",
                "notes": ""
            }
        ]
    }
]

}

我想使用objectpath获取所有部分的列表。在

我试过:

^{pr2}$

但是返回的是一个单独的部分,这是一个数组。即sections只有一个结果,而我期望(或至少想要)只有一个“sections”数组。 这样我就不用在for循环中使用for循环了。在

有没有什么特殊的语法可以让它按我想要的方式返回?在

我也试过:

'$.books[@.name is "Mark"].sections.*'
'$.books[@.name is "Mark"].sections[*]'

运气不好。在


Tags: namejsonforistags数组summarybooks
1条回答
网友
1楼 · 发布于 2024-06-16 09:36:40

sections是一个生成器对象。要从中获取第一项,可以使用next()函数:

sections = Tree(db).execute('$.books[@.name is "Mark"].sections')
print(sections) # will show that it's a generator
for section in next(sections):
    print(section)
    print("  \n")

第一项是包含各个部分的列表。现在可以使用for循环遍历每个部分。在

相关问题 更多 >