Я хотел бы выбрать элементы из списка на основе значения bar в паре ключ-значение params. См. пример ниже.
У меня есть следующий код:
with open('foobar.json', 'r') as fp:
data = json.load(fp)
expr = '[].record'
records = jmespath.search(expr, data)
И следующий входной файл (foobar.json)
[ { 'record': { 'name': 'foobar1',
'params': [ {'name': 'foo', 'text': '4'},
{'name': 'bar', 'text': '12'}]}},
{ 'record': { 'name': 'foobar2',
'params': [ {'name': 'foo', 'text': '4'},
{'name': 'bar', 'text': '16'}]}}]
Запрос JMESPath возвращает обе записи, как и ожидалось.
[ { 'name': 'foobar1',
'params': [ {'name': 'foo', 'text': '4'},
{'name': 'bar', 'text': '12'}]},
{ 'name': 'foobar2',
'params': [ {'name': 'foo', 'text': '4'},
{'name': 'bar', 'text': '16'}]}]
Мне нужно выражение JMESPath, которое возвращало бы только эту запись, поскольку текст записи в params со строкой имени больше больше или равно 13.
[ { 'name': 'foobar2',
'params': [ {'name': 'foo', 'text': '4'},
{'name': 'bar', 'text': '16'}]}]
Подробнее здесь: https://stackoverflow.com/questions/786 ... ctionaries