json - 使用jq获取json值
问题描述
输入json:
{
"food_group": "fruit",
"glycemic_index": "low",
"fruits": {
"fruit_name": "apple",
"size": "large",
"color": "red"
}
}
以下两个 jq 命令起作用:
# jq -r 'keys_unsorted[] as $key | "\($key), \(.[$key])"' food.json
food_group, fruit
glycemic_index, low
fruits, {"fruit_name":"apple","size":"large","color":"red"}
# jq -r 'keys_unsorted[0:2] as $key | "\($key)"' food.json
["food_group","glycemic_index"]
如何以相同的方式使用 jq 获取前两个键的值?我在下面试过
# jq -r 'keys_unsorted[0:2] as $key | "\($key), \(.[$key])"' food.json
jq: error (at food.json:9): Cannot index object with array
预期输出:
food_group, fruit
glycemic_index, low
解决方案
要遍历散列数组,您可以使用to_entries
并将转换为数组。
之后您可以使用select
来过滤您想要保留的行。
jq -r 'to_entries[]| select( ( .value | type ) == "string" ) | "\(.key), \(.value)" '
推荐阅读
- python - Python如何使用多处理计算子目录中大量文件中的行项目频率
- matplotlib - Matplotlib 轴如何双曲线缩放?
- php - php版本的切换在mac上不起作用
- python - Airflow - 禁用心跳日志
- php - 单个帖子有效,但循环帖子返回 500 错误
- angular - 事件发射器不适用于 Angular 8
- javascript - 如何使用 if 语句使用 jquery 显示和隐藏 2 个 div?
- html - 在 ul 和 li 标签 css inline 之间添加空格
- architecture - 优秀软件文档、最佳实践的来源
- reactjs - React-router - 挂钩 useHistory 错误:无法读取未定义的属性“历史”