Вы не получаете Cannot index array with string "Title"
с этой командой, вы получаете
[
"abc",
"xyz",
null,
null
]
так как в объектах массива contents
нет ключа characteristics
или value
(, они являются ключами в массиве .details.Temperature
под-).
Команда, которую должен был передать вам, это сообщение:
jq -r '.[] | [.Title,.brand,.characteristics,.value]' "$jsonfile"
или
jq -r '.content | [.Title,.brand,.characteristics,.value]' "$jsonfile"
Отсутствие поиска по ключу content
или невозможность получить элементы массива content
приводит к получению массива из одного объекта, а не самого объекта. И вы не можете индексировать массив строкой.
Предполагается, что вы хотите выводить CSV:
$ jq -r '.content[] |.details.Temperature[] as $t | [.Title,.brand,$t.value,$t.characteristics] | @csv' file.json
"abc","xyz","90","Normal"
"abc","xyz","100","high"
"abc","xyz","80","low"
действует как цикл в
jq
, так что здесь происходит то, что $t
будет присваиваться каждому элементу .details.Temperature[]
по очереди, и для каждого элемента создается новый массив. Массив передается через @csv
, который выводит строки в формате CSV -.
jq
всегда будет заключать в двойные кавычки поля вывода в формате CSV. Чтобы избавиться от ненужных кавычек:
jq -r '...as above...' file.json | csvformat
(csvformat
является частьюcsvkit
)
Или вы можете использовать @tsv
вместо @csv
, чтобы вместо этого получить вывод, разделенный табуляцией -.
См. инструкцию по установке в репозитории LWFinger.
sudo apt-get update
sudo apt-get install make gcc linux-headers-$(uname -r) build-essential git
git clone https://github.com/lwfinger/rtw88.git
cd rtw88
make
sudo make install
sudo modprobe -rv rtw_8723de
sudo modprobe -v rtw_8723de