gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 04:35:54 26 4
gpt4 key购买 nike

我有一些像下面这样的 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 获取所有部分的列表。

我试过:

sections = Tree(db).execute('$.books[@.name is "Mark"].sections')
for section in sections:
print(section)
print("----\n")

但返回的是一个单独的部分,它是一个数组。也就是说,部分只有一个结果,而我期望(或至少想要)只是“部分”的数组。这将使我在 for 循环中避免 for 循环。

是否有一些特殊的语法让它返回我想要的方式?

我也试过:

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

没有运气。

最佳答案

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 循环遍历每个部分。

关于python - objectpath json查询以在python中获取数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51727560/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com