Jqtsv-キーからヘッダーを作成します

MaryCoding

jqでjsonオブジェクトをtsv形式にレンダリングしようとしています。キー名を使用して動的にヘッダーを生成する方法に出くわしました。

このエラーが発生します:

オブジェクト({"バージョン":...)はcsv行では無効です

これは、いくつかのフィールドが配列であるためだと思います:InstalledLatestこれらのフィールドでこれを機能させるにはどうすればよいですか?また、なぜ私の出力に含まれているの\tですか?

電流出力:

"RELEASE\tINSTALLED\tLATEST\tOUTDATED\tDEPRECATED"
jq: error (at <stdin>:28): object ({"version":...) is not valid in a csv row

必要な出力:

RELEASE         INSTALLED    LATEST    OUTDATED      DEPRACATED
test-app        1.0.0        2.0.0     true          false    
test-app2       3.0.0        3.5.0     true          false 

jq

cat test1.json | jq '[.[]| with_entries( .key |= ascii_upcase ) ] | (.[0] |keys_unsorted | @tsv), (.[]|.|map(.) |@tsv)'

json:

[
  {
    "release": "test-app",
    "Installed": {
      "version": "1.0.0",
      "appVersion": ""
    },
    "Latest": {
      "version": "2.0.0",
      "appVersion": ""
    },
    "outdated": true,
    "deprecated": false
  },
  {
    "release": "test-app2",
    "Installed": {
      "version": "3.0.0",
      "appVersion": ""
    },
    "Latest": {
      "version": "3.5.0",
      "appVersion": ""
    },
    "outdated": true,
    "deprecated": false
  }
]
ピーク

最初に行うことは、アヒルを一列に並べることです。

map({release, installed: .Installed.version, latest: .Latest.version, deprecated})

これで、ヘッダーは簡単になりました。

( .[0] | keys_unsorted | map(ascii_upcase))

...そして。[]を使用して値をフェッチするのは安全です:

.[] | [.[]]

すべてを一緒に入れて:

map({release, installed: .Installed.version, latest: .Latest.version, deprecated})
| ( .[0] | keys_unsorted | map(ascii_upcase)),
  (.[] | [.[]])
| @tsv

ヘッダーの下のダッシュの行

配列/オブジェクトのフォーマットにおけるJqtsvエラーでの関連する質問では、ヘッダーの下にダッシュの行が必要でした。

このような行の生成を自動化するには、jqを使用してJSON文字列をテーブルとしてフォーマットする方法を参照してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Jqtsv-キーからヘッダーを作成します

分類Dev

$ _POST値からcsvファイルにヘッダー名を作成します

分類Dev

2ページ目から始まるテーブルのヘッダー行を作成します

分類Dev

スクロールはヘッダーをスキップし、本文から開始します

分類Dev

リストからヘッダーをプルし、ヘッダーを並べてリスト要素を含むDataFrameを作成します

分類Dev

リストからcsvを作成する方法は、ヘッダーとしてリストを含みますか?

分類Dev

列ヘッダーと行が別々の配列にあるJSONからパンダdfを作成します

分類Dev

BASHからC関数のヘッダーを取得します

分類Dev

WKWebviewからHTTP応答ヘッダーを取得します

分類Dev

SwiftはUIWebView応答からヘッダーを取得します

分類Dev

AngularHttpClient-応答からヘッダーを取得します

分類Dev

WooCommerce管理パネルからヘッダーを削除します

分類Dev

BASHからC関数のヘッダーを取得します

分類Dev

httpヘッダーからCookieを抽出します

分類Dev

HTTP応答からヘッダーを取得します

分類Dev

出力からchkconfigヘッダーを削除します

分類Dev

ヘッダー行から空白の列を削除します

分類Dev

Rubyのヘッダーから文字を削除します

分類Dev

DataTableから特定の列ヘッダー名を取得します

分類Dev

2行目からファイルを読み取るか、ヘッダー行をスキップします

分類Dev

タブキーxlsxエクスポートの列ヘッダーから<br>を削除します

分類Dev

dfインデックスとして外部キーを使用し、内部キーの列ヘッダーを使用して、ネストされたdictからパンダデータフレームを作成します

分類Dev

コマンド「paste」の出力からテーブルへのヘッダーを作成します

分類Dev

コマンド「paste」の出力からテーブルへのヘッダーを作成します

分類Dev

pandasは、既存のヘッダーから新しいヘッダーを追加しますか?

分類Dev

Javascript / HTML:文字列からヘッダースクリプトを作成して実行します

分類Dev

BindgenはC ++ヘッダーファイルから定義をスキップします

分類Dev

Pythonはリクエストレスポンスからヘッダー行をスキップします

分類Dev

ヘッダーからインデックスを削除し、データのインデックスを再作成して0から開始します

Related 関連記事

  1. 1

    Jqtsv-キーからヘッダーを作成します

  2. 2

    $ _POST値からcsvファイルにヘッダー名を作成します

  3. 3

    2ページ目から始まるテーブルのヘッダー行を作成します

  4. 4

    スクロールはヘッダーをスキップし、本文から開始します

  5. 5

    リストからヘッダーをプルし、ヘッダーを並べてリスト要素を含むDataFrameを作成します

  6. 6

    リストからcsvを作成する方法は、ヘッダーとしてリストを含みますか?

  7. 7

    列ヘッダーと行が別々の配列にあるJSONからパンダdfを作成します

  8. 8

    BASHからC関数のヘッダーを取得します

  9. 9

    WKWebviewからHTTP応答ヘッダーを取得します

  10. 10

    SwiftはUIWebView応答からヘッダーを取得します

  11. 11

    AngularHttpClient-応答からヘッダーを取得します

  12. 12

    WooCommerce管理パネルからヘッダーを削除します

  13. 13

    BASHからC関数のヘッダーを取得します

  14. 14

    httpヘッダーからCookieを抽出します

  15. 15

    HTTP応答からヘッダーを取得します

  16. 16

    出力からchkconfigヘッダーを削除します

  17. 17

    ヘッダー行から空白の列を削除します

  18. 18

    Rubyのヘッダーから文字を削除します

  19. 19

    DataTableから特定の列ヘッダー名を取得します

  20. 20

    2行目からファイルを読み取るか、ヘッダー行をスキップします

  21. 21

    タブキーxlsxエクスポートの列ヘッダーから<br>を削除します

  22. 22

    dfインデックスとして外部キーを使用し、内部キーの列ヘッダーを使用して、ネストされたdictからパンダデータフレームを作成します

  23. 23

    コマンド「paste」の出力からテーブルへのヘッダーを作成します

  24. 24

    コマンド「paste」の出力からテーブルへのヘッダーを作成します

  25. 25

    pandasは、既存のヘッダーから新しいヘッダーを追加しますか?

  26. 26

    Javascript / HTML:文字列からヘッダースクリプトを作成して実行します

  27. 27

    BindgenはC ++ヘッダーファイルから定義をスキップします

  28. 28

    Pythonはリクエストレスポンスからヘッダー行をスキップします

  29. 29

    ヘッダーからインデックスを削除し、データのインデックスを再作成して0から開始します

ホットタグ

アーカイブ