shell scripts have external dependencies often but are typically resolved with a quick one liner within the script itself - such as installing jq if it can’t find it on the system.
And it doesn't have to fork off a subprocess and serialize and deserialize text for every single little json structure or property you want to extract or combine.
Manipulating json from bash via jq may seem advanced high tech power user stuff to somebody who only knows bash programming and jq, and refuses to learn python or any other language, but believe me, manipulating json is extremely trivial and massively more efficient and expressive in a real scripting language.
Doing simple things in the most difficult complex way possible doesn't make you cool, it just makes you inefficient and ineffective. If there's any json manipulation or any other data structures than strings, bash is simply the wrong tool for the job, no matter how many of jq's command line parameters and its domain specific mini-languages you can remember.
It's not like there are any modern computers that it's not trivial to install Python or any other language on. If you're using an old antique MicroVax or Cray-1 or PiDP-10 or Analytical Engine or Jacquard Loom that doesn't run the latest version of Python, then you're just doing recreational retrocomputing, and not serious about actually developing modern software on modern hardware for real world use. I mean, that's cool and all, but your choice in how to spend your leisure retrocomputing time should not affect how actual programmers solve real world problems today.