shell怎么遍历json文件
时间: 2023-03-29 21:04:01 浏览: 214
可以使用 jq 工具来遍历 JSON 文件,例如使用以下命令:
```
cat file.json | jq '.'
```
这将会输出 JSON 文件的所有内容。你也可以使用 jq 的过滤器来获取特定的数据,例如:
```
cat file.json | jq '.key'
```
这将会输出 JSON 文件中名为 key 的字段的值。你可以在 jq 的官方文档中了解更多关于 jq 的用法。
相关问题
来一段python代码实现读取json文件中的命令然后执行将结果保存在文件中
好的,以下是一个实现读取json文件中命令并执行的Python代码:
```python
import json
import subprocess
# 读取json文件
with open('commands.json') as f:
data = json.load(f)
# 遍历json中的命令并执行
for command in data['commands']:
result = subprocess.run(command, shell=True, capture_output=True)
# 将结果保存到文件中
with open('results.txt', 'a') as f:
f.write(result.stdout.decode('utf-8'))
```
这个代码会读取名为`commands.json`的json文件,里面包含一些命令,然后遍历这些命令并执行。执行结果会保存在一个名为`results.txt`的文件中。注意,这个代码是使用`subprocess`模块来执行命令的,因此要小心执行的命令是否安全。
shell怎么获取json中所有key和value并保存(不用jq)
可以使用Python中的json库来获取json中所有key和value,并将其保存到一个字典中。具体代码如下:
```python
import json
# 读取json文件
with open('example.json', 'r') as f:
data = json.load(f)
# 遍历json中所有key和value
result = {}
def traverse(data):
if isinstance(data, dict):
for key, value in data.items():
result[key] = value
traverse(value)
elif isinstance(data, list):
for item in data:
traverse(item)
traverse(data)
# 将结果保存到文件中
with open('result.txt', 'w') as f:
for key, value in result.items():
f.write(f'{key}: {value}\n')
```
这样就可以将json中所有key和value保存到result.txt文件中了。