怎么用shell获取json中所有key和value(不适用jq)
时间: 2023-03-29 15:04:22 浏览: 889
您可以使用awk和sed命令来获取json中所有key和value。具体操作如下:
1. 使用sed命令将json中的花括号替换为换行符,每个键值对占一行。
2. 使用awk命令对每一行进行处理,使用正则表达式匹配key和value,并输出。
具体命令如下:
sed 's/[{}]/\n/g' file.json | sed 's/\"//g' | sed 's/\,//g' | awk -F: '{print $1,$2}'
其中,file.json为json文件名。
相关问题
怎么用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)
可以使用Python的json库来获取json中所有key和value。具体代码如下:
```python
import json
json_str = '{"name": "Tom", "age": 18, "gender": "male"}'
json_obj = json.loads(json_str)
for key, value in json_obj.items():
print(key, value)
```
输出结果为:
```
name Tom
age 18
gender male
```
阅读全文