Package: json-inline
JSON InlineLow code JSON to extract data in one lineENGRUInstallationpipinstalljson-inlineUsage RulesModificatorDescription?key:valueSearch first object's entry in array by key:value pair?keySearch first object's entry in array by key?+keySearch first object's entry in array by key and return data by key?key#numSearch object in array by key with specify entry's count (default #1)?+key#numSearch object in array by key with specify entry's count and return data by key.keyMove forward in object by key.#indexMove forward in array by indexUsageSearch in array by key and value:importjson_inlinetest_struct=[{"fruit":"apple","yummy":"true"},{"vegetable":"tomato","yummy":"false"},{"vegetable":"cucumber","yummy":"false"}]# Search first object's entry in array with key vegetable and value cucumber,# return value from yummy keyjson_inline.fetch(test_struct,'?vegetable:cucumber.yummy')# >>> "false"# Search first object's entry in array with key vegetable and value tomatojson_inline.fetch(test_struct,'?vegetable:tomato')# >>> {"vegetable": "tomato", "yummy": "false"}Search in array by key:importjson_inlinetest_struct=[{"animal":"cat"},{"animal":"dog"},{"plant":"tomato"},{"thing":"book"}]# Search first object's entry in array with key animaljson_inline.fetch(test_struct,'?animal')# >>> {"animal": "cat"}# Search second object's entry in array with key animaljson_inline.fetch(test_struct,'?animal#2')# >>> {"animal": "dog"}# Search second object's entry in array with key animal,# return value from animal keyjson_inline.fetch(test_struct,'?+animal#2')# >>> "dog"Nested navigation:importjson_inlinetest_struct=[{'item1':'fail'},{'item2':'fail'},{'item2':[{'item4':'fail'},{'item4':'fail'},{'item5':[{'item7':'fail'},{'item7':'fail','item9':[{'item10':'fail'},{'item10':'fail'},{'item10':'fail'},{'item10':'fail'},{'item10':'success'},]},{'item8':'fail'},]},{'item5':'fail'},{'item6':'fail'},]},{'item3':'fail'}]# Movement variant used array index to reach needs valuejson_inline.fetch(test_struct,'?+item2#2.?+item5.?item7:fail#2.item9.#4.item10')# Stable variant used search by array instead index movejson_inline.fetch(test_struct,'?+item2#2.?+item5.?item7:fail#2.item9.?item10:success.item10')# >>> "success"RUENGУстановкаpipinstalljson-inlineПравила использованияМодификаторОписание?key:valueПоиск первого вхождения объекта в массиве с нужным ключем и значением?keyПоиск первого вхождения объекта в массиве с нужным ключем?+keyПоиск первого вхождения объекта в массиве с нужным ключем и возврат данных по ключу?key#numПоиск объекта в массиве с нужным ключем и указанием номера вхождения  (по умолчанию #1)?+key#numПоиск объекта в массиве с нужным ключем, указанием номера вхождения и возврат данных по ключу.keyПереход на новый уровень вложенности по ключу.#indexПереход на новый уровень вложенности по индексу массиваПримеры использованияПоиск в массиве по ключу и значению:importjson_inlinetest_struct=[{"fruit":"apple","yummy":"true"},{"vegetable":"tomato","yummy":"false"},{"vegetable":"cucumber","yummy":"false"}]# Поиск первого вхождения объекта в массиве с ключем vegetable и значением cucumber,# возврат значения yummy из найденной структурыjson_inline.fetch(test_struct,'?vegetable:cucumber.yummy')# >>> "false"# Поиск первого вхождения объекта в массиве с ключем vegetable и значением tomatojson_inline.fetch(test_struct,'?vegetable:tomato')# >>> {"vegetable": "tomato", "yummy": "false"}Поиск в массиве по ключу:importjson_inlinetest_struct=[{"animal":"cat"},{"animal":"dog"},{"plant":"tomato"},{"thing":"book"}]# Поиск первого вхождения объекта в массиве с ключем animaljson_inline.fetch(test_struct,'?animal')# >>> {"animal": "cat"}# Поиск второго вхождения объекта в массиве с ключем animaljson_inline.fetch(test_struct,'?animal#2')# >>> {"animal": "dog"}# Поиск второго вхождения объекта в массиве с ключем animal,# возврат значения из найденного ключа (animal)json_inline.fetch(test_struct,'?+animal#2')# >>> "dog"Навигация по структурам:importjson_inlinetest_struct=[{'item1':'fail'},{'item2':'fail'},{'item2':[{'item4':'fail'},{'item4':'fail'},{'item5':[{'item7':'fail'},{'item7':'fail','item9':[{'item10':'fail'},{'item10':'fail'},{'item10':'fail'},{'item10':'fail'},{'item10':'success'},]},{'item8':'fail'},]},{'item5':'fail'},{'item6':'fail'},]},{'item3':'fail'}]# Вариант с движением по массиву через индексjson_inline.fetch(test_struct,'?+item2#2.?+item5.?item7:fail#2.item9.#4.item10')# Более надежный вариант с поиском значения путем перебораjson_inline.fetch(test_struct,'?+item2#2.?+item5.?item7:fail#2.item9.?item10:success.item10')# >>> "success"