简体   繁体   English

如何使用 jq 提取键并根据 JSON 文件中的另一个键值打印它们一定次数

[英]How to use jq to extract keys and print them a certain amount of times depending on another keys value from a JSON file

So I'm trying to get the top-level keys and then multiply each one by the amount under each key then post the key as many times as the amount states.所以我试图获取顶级密钥,然后将每个密钥乘以每个密钥下的数量,然后将密钥发布与数量状态一样多的次数。

How do I get jq to take json like this:我如何让 jq 像这样服用 json:

{
"2tMRnry9cMqcMo5JqPWvyFaznoU8ujcf3i9ALpzokFHK": {
    "mints": [
        "Ehmx5dGtUtYSTRYDNptYSPLXs4ZSFmCPHvPd5ProtGPp",
        "DZHynoX1yrwdppnNNZmBHqap89vziSehmhJP3BQESoaN",
        "CVdM8fu474xaVxxuUzLsn7rxTA1mcrkpq8K7YYN4gRoc"
    ],
    "amount": 3
},
"CVjVEB2WBmDACcovpxKAEqXZZKdUGsGAn2v5EsWSjtXX": {
    "mints": [
        "CPBsjXBKrG2QfRAkaPDJ282bXr7uD9259Ymb6EC93jjb"
    ],
    "amount": 1
},
"Cndq2Yjt1MVkQPYiZod9eGZcTHFDhuYjJA7N6vAuVw8H": {
    "mints": [
        "66T698sRaJiyEXu6RrBw8ApNYsx1spkQQZZM9nZdA9EE",
        "65QEUZVWMg12UvrRNcoV5DwVANKWaarHPd52KemV4pRy"
    ],
        "amount": 2
    }
}

and generate this output:并生成此 output:

2tMRnry9cMqcMo5JqPWvyFaznoU8ujcf3i9ALpzokFHK
2tMRnry9cMqcMo5JqPWvyFaznoU8ujcf3i9ALpzokFHK
2tMRnry9cMqcMo5JqPWvyFaznoU8ujcf3i9ALpzokFHK
CVjVEB2WBmDACcovpxKAEqXZZKdUGsGAn2v5EsWSjtXX
Cndq2Yjt1MVkQPYiZod9eGZcTHFDhuYjJA7N6vAuVw8H
Cndq2Yjt1MVkQPYiZod9eGZcTHFDhuYjJA7N6vAuVw8H

You can use to_entries to access key and value, and range to iterate:您可以使用to_entries访问键和值,并range进行迭代:

jq -r 'to_entries[] | range(.value.amount) as $_ | .key'
2tMRnry9cMqcMo5JqPWvyFaznoU8ujcf3i9ALpzokFHK
2tMRnry9cMqcMo5JqPWvyFaznoU8ujcf3i9ALpzokFHK
2tMRnry9cMqcMo5JqPWvyFaznoU8ujcf3i9ALpzokFHK
CVjVEB2WBmDACcovpxKAEqXZZKdUGsGAn2v5EsWSjtXX
Cndq2Yjt1MVkQPYiZod9eGZcTHFDhuYjJA7N6vAuVw8H
Cndq2Yjt1MVkQPYiZod9eGZcTHFDhuYjJA7N6vAuVw8H

Demo演示

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM