【发布时间】:2018-08-07 13:05:17
【问题描述】:
我有一些 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[*]'
没有运气。
【问题讨论】:
-
python
json库有什么问题?[book['sections'] for book in json.loads(json_obj)['books']] -
我正在使用 objectpath 来帮助将数据结构从代码中分离出来,因此希望在 objectcode 中只保留一些字符串,这使得更改数据布局变得非常容易。
标签: python json objectpath