我有以下json:
{
"dataset_1": {
"size_in_mb": 0.5,
"task": "clean",
"tags": ["apple", "banana", "strawberry"]
},
"dataset_2": {
"size_in_mb": 100,
"task": "split",
"tags": ["apple"]
},
"dataset_3": {
"size_in_mb": 1024,
"task": "clean",
"tags": ["strawberry"]
}
}
我如何:
我能够查询数据集的属性,但是无法提取具有特定属性的数据集的名称。例如,当“标签”包含“草莓”时,我可以获取[“草莓”],但无法获取[“数据集_1”,“数据集_3”]。
This问题接近,但基本上说您不能使用jmespath。
答案 0 :(得分:0)
正如您在评论中所述,如果要执行以下操作,通常最好的方法是重新标准化原始数据集以使用顺序枚举排序规则(而不是用于顶层排序规则的对象键)。通用查询与jmespath。
您链接到的Stackoverflow帖子对此问题进行了更详细的介绍here
{
"dataset_1": {
"size_in_mb": 0.5,
"task": "clean",
"tags": ["apple", "banana", "strawberry"]
},
"dataset_2": {
"size_in_mb": 100,
"task": "split",
"tags": ["apple"]
},
"dataset_3": {
"size_in_mb": 1024,
"task": "clean",
"tags": ["strawberry"]
}
}
{"dataroot":[
{
"name": "dataset_1",
"size_in_mb": 0.5,
"task": "clean",
"tags": ["apple", "banana", "strawberry"]
},
{
"name": "dataset_2",
"size_in_mb": 100,
"task": "split",
"tags": ["apple", "banana", "strawberry"]
},
{
"name": "dataset_3",
"size_in_mb": 1024,
"task": "clean",
"tags": ["strawberry"]
}
]}