Исходное сообщение о работе с JSON.
ZogG,
Dr64h вы не в курсе как обходить рекурсивно обходить Record, чтоб получать путь и значение каждого элемента?
То что, я пока нашел не подоходит. Просто превратить весь Record в огромную однострочку табицу где данные хранятся под именами столбцов. Могу получить имена столбцов. А вот пару имя/значение пока не знаю как.
~/tmp/nu> open react_p.json | flatten | columns | where ($it | str contains "lint")
╭────┬────────────────────────────────────────────────╮
│ 0 │ @typescript-eslint/eslint-plugin │
│ 1 │ @typescript-eslint/parser │
│ 2 │ eslint │
│ 3 │ eslint-config-prettier │
│ 4 │ eslint-plugin-babel │
│ 5 │ eslint-plugin-es │
│ 6 │ eslint-plugin-eslint-plugin │
│ 7 │ eslint-plugin-ft-flow │
│ 8 │ eslint-plugin-jest │
│ 9 │ eslint-plugin-no-for-of-loops │
│ 10 │ eslint-plugin-no-function-declare-after-return │
│ 11 │ eslint-plugin-react │
│ 12 │ eslint-plugin-react-internal │
│ 13 │ hermes-eslint │
│ 14 │ lint │
│ 15 │ lint-build │
╰────┴────────────────────────────────────────────────╯
Через zip я добился создание таблицы. Но в ней нет пути.
~/tmp/nu> let names = open react_p.json | flatten | columns
~/tmp/nu> let vals = open react_p.json | flatten | values
~/tmp/nu> let pairs = $names | zip $vals
~/tmp/nu> $pairs | where ($it.0 | str contains lint) |
reduce -f [[key value]; [0,0]] {|it, acc| $acc | append [[key value]; [$it.0, $it.1.0]]} |
skip 1
╭────┬────────────────────────────────────────────────┬─────────────────────────────────────────╮
│ # │ key │ value │
├────┼────────────────────────────────────────────────┼─────────────────────────────────────────┤
│ 0 │ @typescript-eslint/eslint-plugin │ ^6.21.0 │
│ 1 │ @typescript-eslint/parser │ ^6.21.0 │
│ 2 │ eslint │ ^7.7.5 │
│ 3 │ eslint-config-prettier │ ^6.9.0 │
│ 4 │ eslint-plugin-babel │ ^5.3.0 │
│ 5 │ eslint-plugin-es │ ^4.1.0 │
│ 6 │ eslint-plugin-eslint-plugin │ ^3.5.3 │
│ 7 │ eslint-plugin-ft-flow │ ^2.0.3 │
│ 8 │ eslint-plugin-jest │ 28.4.0 │
│ 9 │ eslint-plugin-no-for-of-loops │ ^1.0.0 │
│ 10 │ eslint-plugin-no-function-declare-after-return │ ^1.0.0 │
│ 11 │ eslint-plugin-react │ ^6.7.1 │
│ 12 │ eslint-plugin-react-internal │ link:./scripts/eslint-rules │
│ 13 │ hermes-eslint │ ^0.22.0 │
│ 14 │ lint │ node ./scripts/tasks/eslint.js │
│ 15 │ lint-build │ node ./scripts/rollup/validate/index.js │
╰────┴────────────────────────────────────────────────┴─────────────────────────────────────────╯