shell怎么获取json中所有key和value并保存(不用jq)
时间: 2023-03-29 22:04:23 浏览: 77
可以使用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文件中了。
相关问题
怎么用shell获取json中所有key和value并保存(不适用jq)
您可以使用Python的json库来获取json中所有key和value并保存。以下是一个示例代码:
```python
import json
with open('example.json') as f:
data = json.load(f)
keys = []
values = []
def get_keys_values(data):
if isinstance(data, dict):
for key, value in data.items():
keys.append(key)
get_keys_values(value)
elif isinstance(data, list):
for item in data:
get_keys_values(item)
else:
values.append(data)
get_keys_values(data)
with open('keys.txt', 'w') as f:
f.write('\n'.join(keys))
with open('values.txt', 'w') as f:
f.write('\n'.join(values))
```
您需要将上述代码保存为一个Python文件,例如`get_keys_values.py`,并将您的json文件命名为`example.json`,然后在终端中运行以下命令:
```shell
python get_keys_values.py
```
这将在当前目录下生成两个文本文件`keys.txt`和`values.txt`,分别包含json中所有的key和value。
shell怎么获取json中所有key和value(不用jq)
可以使用awk命令来获取json中所有key和value,具体命令如下:
awk -F '[:,]' '{for(i=1;i<=NF;i++){if($i~/\042name\042/){print $(i+1)}}}' 文件名
其中,\042代表双引号,name代表json中的key名称,文件名为json文件的名称。这个命令会输出json中所有name key对应的value值。