Следуя синтаксису jsonpath_ng:
path = '$.data.objects[*].currencies[*].name'
related = '$.data.objects[4].currencies[0].name'
unrelated = '$.data.objects[4].currencies[0].value'
Я хочу сравнить, эквивалентны ли две строки, представляющие пути JSON в Python, если мы игнорируем какие-либо индексы. Например, related будет соответствовать path, а unrelated — нет.
Есть ли более чистый способ сделать это, кроме регулярного выражения? Я уже использую jsonpath_ng в этом модуле, но не вижу поддержки этой функции.
Чтобы было ясно: эта операция не зависит от каких-либо последующих ссылок на объекты JSON, я просто хочу определить, похожи ли сами пути.
Извините, уточнил вопрос, чтобы указать, что проверка должна быть на самой строке пути и не связана с каким-либо конкретным JSON. Другими словами, меня не интересует значение этих путей, меня интересует только то, соответствует ли relatedpath.
json_ng.parse() возвращает AST, поэтому вы можете просмотреть AST для каждого выражения и для каждого узла решить, «соответствует» ли он другому. Чтение исходного кода пакета может помочь...






вам нужно дать больше информации, небольшой пример из вашего json, чтобы другие могли лучше понять.