【问题标题】:Convert/Export JSON to CSV将 JSON 转换/导出为 CSV
【发布时间】:2018-03-09 10:44:35
【问题描述】:

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"
        }
    ]

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

我可以得到

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

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

所以输出可以是

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

【问题讨论】:

  • 发布您的输入 JSON 并发布准确的预期输出

标签: json bash csv jq


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2015-08-23
    • 2019-08-21
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多