将json编辑为csv输出文件

将json编辑为csv输出文件,json,bash,csv,jq,Json,Bash,Csv,Jq,我试图通过“curl”获取JSON数据,并使用“jq”命令将其转换为“csv” 代码: 输出csv文件(datacsv.csv)对每个记录都有重复的标题: data__id data__name data__symbol data__slug data__num_market_pairs data__date_added data__max_supply data__circulating_supply data__total_supply data__cm

我试图通过“curl”获取
JSON
数据,并使用“
jq
”命令将其转换为“
csv

代码:

输出
csv
文件(
datacsv.csv
)对每个记录都有重复的标题:

data__id    data__name  data__symbol    data__slug  data__num_market_pairs  data__date_added    data__max_supply    data__circulating_supply    data__total_supply  data__cmc_rank  data__last_updated  data__quote__USD__price data__quote__USD__volume_24h    data__quote__USD__percent_change_1h data__quote__USD__percent_change_24h    data__quote__USD__percent_change_7d data__quote__USD__percent_change_30d    data__quote__USD__percent_change_60d    data__quote__USD__percent_change_90d    data__quote__USD__market_cap    data__quote__USD__last_updated                  
1   Bitcoin BTC bitcoin 9547    2013-04-28T00:00:00.000Z    21000000    18691931    18691931    1   2021-04-26T16:21:02.000Z    53285.1129054482    59530205038.6485    -0.6500853  5.53203621  -3.31916623 -3.33187743 4.07075949  69.03589533 996001653755.848    2021-04-26T16:21:02.000Z                    
data__id    data__name  data__symbol    data__slug  data__num_market_pairs  data__date_added    data__circulating_supply    data__total_supply  data__cmc_rank  data__last_updated  data__quote__USD__price data__quote__USD__volume_24h    data__quote__USD__percent_change_1h data__quote__USD__percent_change_24h    data__quote__USD__percent_change_7d data__quote__USD__percent_change_30d    data__quote__USD__percent_change_60d    data__quote__USD__percent_change_90d    data__quote__USD__market_cap    data__quote__USD__last_updated                      
1027    Ethereum    ETH ethereum    6312    2015-08-07T00:00:00.000Z    115629413.749   115629413.749   2   2021-04-26T16:21:02.000Z    2482.06593555852    36892666790.3224    -0.23795873 5.43647682  16.16445289 46.51867774 51.11877441 94.25117671 286999829014.995    2021-04-26T16:21:02.000Z                        
1839    Binance Coin    BNB binance-coin    579 2017-07-25T00:00:00.000Z    170532785   153432897   169432897   3   2021-04-26T16:20:10.000Z    533.23090641431 4373867739.9739 0.03999376  3.29006408  8.84917842  103.69391599    108.02152044    1217.45571414   81815162741.0835    2021-04-26T16:20:10.000Z                    
52  XRP XRP xrp 664 2013-08-04T00:00:00.000Z    100000000000    45404028640 99990831162 4   2021-04-26T16:21:03.000Z    1.24569103514058    13547433610.3615    0.9120132   9.79015802  -4.60461388 125.54110459    162.86485803    372.19710035    56559391436.1141    2021-04-26T16:21:03.000Z                    
data__id    data__name  data__symbol    data__slug  data__num_market_pairs  data__date_added    data__circulating_supply    data__total_supply  data__platform__id  data__platform__name    data__platform__symbol  data__platform__slug    data__platform__token_address   data__cmc_rank  data__last_updated  data__quote__USD__price data__quote__USD__volume_24h    data__quote__USD__percent_change_1h data__quote__USD__percent_change_24h    data__quote__USD__percent_change_7d data__quote__USD__percent_change_30d    data__quote__USD__percent_change_60d    data__quote__USD__percent_change_90d    data__quote__USD__market_cap    data__quote__USD__last_updated  
825 Tether  USDT    tether  12325   2015-02-25T00:00:00.000Z    50006254438.5217    51866290994.3298    1027    Ethereum    ETH ethereum    0xdac17f958d2ee523a2206206994597c13d831ec7  5   2021-04-26T16:20:10.000Z    0.99997577777133    117822325986.94 -0.01985404 0.00891016  0.00656415  -0.1262222  -0.05070907 -0.14745816 50005043175.5917    2021-04-26T16:20:10.000Z    
2010    Cardano ADA cardano 259 2017-10-01T00:00:00.000Z    45000000000 31948309440.7478    45000000000 6   2021-04-26T16:20:10.000Z    1.2163725547586 3494400505.85215    -0.63516459 6.44253956  1.77358151  2.5727442   8.69333792  266.42366354    38861046774.6607    2021-04-26T16:20:10.000Z                    
74  Dogecoin    DOGE    dogecoin    331 2013-12-15T00:00:00.000Z    129348760639.944    129348760639.944    7   2021-04-26T16:21:03.000Z    0.26639640673017    6963087140.98019    -0.74842096 -1.96582346 -25.83236676    387.41281461    386.8290754 3173.67302946   34458045049.482 2021-04-26T16:21:03.000Z                        
6636    Polkadot    DOT polkadot-new    186 2020-08-19T00:00:00.000Z    932996847.726976    1068520962.58116    8   2021-04-26T16:21:06.000Z    32.3141434419601    2146407823.73721    -0.76428061 3.64699209  -7.2706416  0.41872077  -5.75544689 96.74696139 30148993968.3461    2021-04-26T16:21:06.000Z                        
data__id    data__name  data__symbol    data__slug  data__num_market_pairs  data__date_added    data__max_supply    data__circulating_supply    data__total_supply  data__platform__id  data__platform__name    data__platform__symbol  data__platform__slug    data__platform__token_address   data__cmc_rank  data__last_updated  data__quote__USD__price data__quote__USD__volume_24h    data__quote__USD__percent_change_1h data__quote__USD__percent_change_24h    data__quote__USD__percent_change_7d data__quote__USD__percent_change_30d    data__quote__USD__percent_change_60d    data__quote__USD__percent_change_90d    data__quote__USD__market_cap    data__quote__USD__last_updated
7083    Uniswap UNI uniswap 235 2020-09-17T00:00:00.000Z    1000000000  523384243.630469    1000000000  1027    Ethereum    ETH ethereum    0x1f9840a85d5af5bf1d1762f925bdaddc4201f984  9   2021-04-26T16:20:10.000Z    35.2645393307245    1159198004.59251    -0.72129315 3.06863351  17.86724054 24.69707747 36.43669393 187.42707789    18456904244.5882    2021-04-26T16:20:10.000Z
2   Litecoin    LTC litecoin    741 2013-04-28T00:00:00.000Z    84000000    66752414.5153875    66752414.5153875    10  2021-04-26T16:21:02.000Z    241.772049644181    4873850130.55793    0.08569225  3.079198    -6.01020181 32.7958836  20.24742388 84.55115332 16138868076.0832    2021-04-26T16:21:02.000Z                    
1831    Bitcoin Cash    BCH bitcoin-cash    586 2017-07-23T00:00:00.000Z    21000000    18719506.25 18719506.25 11  2021-04-26T16:20:08.000Z    825.995177012163    4098896768.46408    -0.62457646 3.13607248  -8.10372907 65.63228051 51.71459366 96.05126285 15462221878.549 2021-04-26T16:20:08.000Z                    
1975    Chainlink   LINK    chainlink   495 2017-09-20T00:00:00.000Z    1000000000  419009556.434445    1000000000  1027    Ethereum    ETH ethereum    0x514910771af9ca656af840dff83e8264ecf986ca  12  2021-04-26T16:20:10.000Z    34.4665578984855    1711065668.01118    0.39416876  3.37393637  -5.31781365 29.84576669 22.2383717  55.53806504 14441817136.8665    2021-04-26T16:20:10.000Z
5426    Solana  SOL solana  41  2020-04-10T00:00:00.000Z    269856622.936333    493886983.051495    13  2021-04-26T16:21:05.000Z    46.722213592056 1743822879.60336    -1.09733007 3.84673072  46.93695628 195.9965083 184.71221177    1146.97970713   12608298776.0623    2021-04-26T16:21:05.000Z    
我想过滤输出的“csv”文件,获取感兴趣的字段(
data\uu id
data\uu name
data\uu symbol
data\uu slug
data\uu num\u market\u pairs
添加的数据日期
数据最大供应量
数据供应量
数据供应总量)不包括休息

期望输出:

data__id    data__name  data__symbol    data__slug  data__num_market_pairs  data__date_added    data__max_supply    data__circulating_supply    data__total_supply
1   Bitcoin BTC bitcoin 9547    2013-04-28T00:00:00.000Z    21000000    18691931    18691931
1027    Ethereum    ETH ethereum    6312    2015-08-07T00:00:00.000Z    115629413.749   115629413.749   2
1839    Binance Coin    BNB binance-coin    579 2017-07-25T00:00:00.000Z    170532785   153432897   169432897
52  XRP XRP xrp 664 2013-08-04T00:00:00.000Z    100000000000    45404028640 99990831162
825 Tether  USDT    tether  12325   2015-02-25T00:00:00.000Z    50006254438.5217    51866290994.3298    1027
2010    Cardano ADA cardano 259 2017-10-01T00:00:00.000Z    45000000000 31948309440.7478    45000000000
74  Dogecoin    DOGE    dogecoin    331 2013-12-15T00:00:00.000Z    129348760639.944    129348760639.944    7
6636    Polkadot    DOT polkadot-new    186 2020-08-19T00:00:00.000Z    932996847.726976    1068520962.58116    8
7083    Uniswap UNI uniswap 235 2020-09-17T00:00:00.000Z    1000000000  523384243.630469    1000000000
2   Litecoin    LTC litecoin    741 2013-04-28T00:00:00.000Z    84000000    66752414.5153875    66752414.5153875
1831    Bitcoin Cash    BCH bitcoin-cash    586 2017-07-23T00:00:00.000Z    21000000    18719506.25 18719506.25
1975    Chainlink   LINK    chainlink   495 2017-09-20T00:00:00.000Z    1000000000  419009556.434445    1000000000
5426    Solana  SOL solana  41  2020-04-10T00:00:00.000Z    269856622.936333    493886983.051495    13

要仅发出一次标题,可以使用模板:
headers,TABLE

def relevantPaths:
   "id,name,symbol,slug,num_market_pairs,date_added,max_supply,circulating_supply,total_supply"
  | split(",")
  | map([.]) ;

relevantPaths as $paths
| ([["data"] + $paths[]] | map(join("__"))),
  (.data[] | [ getpath($paths[]) ])
| @tsv

这适用于以“数据”开头的字段,如:“id、cmc排名、名称、符号、slug、num\u市场对、max\u供应”,但它会留下以“数据平台”和“数据美元”开头的空白字段,例如:数据平台id、数据平台名称、数据平台符号、数据平台slug和数据美元百分比变化90d,数据-美元-市场-上限,数据-美元-最后_updated@mehdishokati-问答网站也是如此,而不是免费的SE服务。如果你的问题已经得到了回答,如果你接受它并从那里继续前进,那将是很有帮助的。在这种情况下,“继续前进”可能意味着调整已提供的解决方案,或与SE合作为您这样做,或根据指导原则询问so的新Q。非常感谢您的回答和评论,我将在so中添加新Q。
def relevantPaths:
   "id,name,symbol,slug,num_market_pairs,date_added,max_supply,circulating_supply,total_supply"
  | split(",")
  | map([.]) ;

relevantPaths as $paths
| ([["data"] + $paths[]] | map(join("__"))),
  (.data[] | [ getpath($paths[]) ])
| @tsv