将JSON转换/导出为CSV [英] Convert/Export JSON to CSV

查看:96
本文介绍了将JSON转换/导出为CSV的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

JSON文件:

"UserDetailList": [
        {
            "UserName": "citrix-xendesktop-ec2-provisioning", 
            "GroupList": [], 
            "CreateDate": "2017-11-07T14:20:14Z", 
            "UserId": "1234556", 
            "Path": "/", 
            "AttachedManagedPolicies": [
                {
                    "PolicyName": "AmazonEC2FullAccess", 
                    "PolicyArn": "arn:aws:iam::aws:policy/AmazonEC2FullAccess"
                }, 
                {
                    "PolicyName": "AmazonS3FullAccess", 
                    "PolicyArn": "arn:aws:iam::aws:policy/AmazonS3FullAccess"
                }
            ], 
            "Arn": "arn:aws:iam::1234567890:user/citrix-xendesktop-ec2-provisioning"
        }, 
        {
            "UserName": "rundeck-read-only-iam-permissions", 
            "GroupList": [], 
            "CreateDate": "2018-03-09T11:13:38Z", 
            "UserId": "AIDAJQOQGKISLCWDXG6EQ", 
            "Path": "/", 
            "AttachedManagedPolicies": [
                {
                    "PolicyName": "IAMReadOnlyAccess", 
                    "PolicyArn": "arn:aws:iam::aws:policy/IAMReadOnlyAccess"
                }
            ], 
            "Arn": "arn:aws:iam::279052847476:user/rundeck-read-only-iam-permissions"
        }
    ]

with

jq -r '.UserDetailList[] | [.UserName] | @csv' output.json > fileout2.csv

我可以得到

citrix-xendesktop-ec2-provisioning"
"rundeck-read-only-iam-permissions"

如何获取这2个用户的IAM策略,我需要在AttachedManagedPolicies下提取AmazonEC2FullAccess和AmazonS3FullAccess吗?

How to get IAM policies for these 2 users, i need to extract AmazonEC2FullAccess and AmazonS3FullAccess under AttachedManagedPolicies ?

所以输出可以

citrix-xendesktop-ec2-provisioning",AmazonEC2FullAccess
citrix-xendesktop-ec2-provisioning",AmazonS3FullAccess
rundeck-read-only-iam-permissions,IAMReadOnlyAccess


推荐答案

诀窍是在迭代内部数组之前提取.UserName作为变量:

The trick is to extract .UserName as a variable before iterating over the inner array:

.UserDetailList[] 
| .UserName as $u
| .AttachedManagedPolicies[]
| [$u, .PolicyName]
| @csv

当然,这假定有效的JSON输入。

Of course this assumes valid JSON input.

这篇关于将JSON转换/导出为CSV的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆