python - 如何使用 python one-liner 从 bash 中的 json 文件中获取嵌套键的值?
问题描述
我正在尝试使用 python one-liner 从 bash 中的 json 文件中获取嵌套键的值。下面给出的是我的 json 文件内容。
{
"conditional_ks": {
"saturday":["reportdata_by_type"],
"sunday":["rt_report","metadata"]
}
}
我想要所有值 ["reportdata_by_type","rt_report","metadata"] 作为列表。我喜欢,
[root@testnode1 repair]# python -c "import json; print json.load(open('repair.json','r'))[\"conditional_ks\"].values()"
output: [[u'rt_report', u'metadata'], [u'reportdata_by_type']]
但我需要像 ['rt_report','metadata','reportdata_by_type'] 这样的输出
注意: repair.json 是 json 文件名。
一种选择是使用conditional_ks.*[]
which 应该给出如下输出:
["reportdata_by_type", "rt_report", "metadata" ]
但是在bash中我无法使用它。
任何人都可以解决这个问题,请帮助。
解决方案
python -c "import json; import itertools; print(list(itertools.chain(*(json.load(open(\"repair.json\", 'r'))[\"conditional_ks\"].values()))))"
我已经在我的计算机中测试了代码,它可以正常工作。愿这会有所帮助。
推荐阅读
- python - Pandas Dataframe 循环遍历列效率低下
- groovy - 在 groovy 中列出多处理
- ssl - Apache Tomcat 8.5:在 IE 中启用 SSL,但在 Chrome 中未启用
- c# - nLog 记录会话变量始终为空
- xml - XSL 转换 - 使用来自在线资源的 XML
- postgresql - 使用 AWS-Lambda 和 Typeorm 部署环境写入 Postgres DB 时,如何修复“错误:关系“queList”不存在”?
- coldfusion - Fedex 取件服务中的身份验证失败
- android - 使用自定义通知时如何以编程方式将视图添加到通知(添加到 RemoveViews)
- laravel - 如何从刀片中的 eloquent 过滤器中提取数据
- jquery - 当我们使用数据表 pdf 按钮打印数据表时,无法获取 pdf 格式的数据表图像。它只显示空数据而不是图像