कैसे करने के लिए नहीं करते हैं jq की व्याख्या newline चरित्र जब निर्यात करने के लिए सीएसवी

0

सवाल

मैं करना चाहते हैं परिवर्तित करने के लिए निम्न JSON सामग्री में संग्रहीत एक फाइल tmp.json

{
    "results": [
        [
           {
               "field": "field1",
               "value": "value1-1"
           },
           {
               "field": "field2",
               "value": "value1-2\n"
           }
        ],
        [
           {
               "field": "field1",
               "value": "value2-1"
           },
           {
               "field": "field2",
               "value": "value2-2\n"
           }
        ]
    ]
}

एक सीएसवी आउटपुट

"field1","field2"
"value1-1","value1-2\n"
"value2-1","value2-2\n"

जब मैं इस का उपयोग करें jq आदेश में, हालांकि,

 cat tmp.json | jq -r '.results | (first | map(.field)), (.[] | map(.value)) | @csv'

मैं इस परिणाम:

"field1","field2"
"value1-1","value1-2
"
"value2-1","value2-2
"

कैसे करना चाहिए jq कमांड लिखा जा सकता प्राप्त करने के लिए वांछित सीएसवी परिणाम?

export-to-csv jq json
2021-11-24 06:09:08
2

सबसे अच्छा जवाब

3

के लिए एक jq-केवल समाधान है, आप का उपयोग कर सकते हैं gsub("\n"; "\\n"). मैं जाना चाहते हैं के साथ कुछ इस तरह है:

.results
| (.[0] | map(.field)),
  (.[]  | map( .value | gsub("\n"; "\\n")))
| @csv

का उपयोग कर अपने JSON और लागू करने के लिए इस के साथ -r कमांड लाइन विकल्प पैदावार:

"field1","field2"
"value1-1","value1-2\n"
"value2-1","value2-2\n"
2021-11-24 06:57:07
1

अगर newlines कर रहे हैं केवल एक चीज आप को संभाल कर सकते हैं, शायद आप कर सकते हैं एक स्ट्रिंग प्रतिस्थापन.

cat tmp.json | jq -r '.results | (first | map(.field)), (.[] | map(.value) | map(gsub("\\n"; "\\n"))) | @csv'
2021-11-24 06:48:27

@rchrome, इस कारण एक Segmentation fault (core dumped) मेरे CentOS7 मशीन. नहीं यकीन है कि क्यों.
hermit.crab

हम्म, दिलचस्प है, यह काम करता है पर मेरे ubuntu 16.04 मशीन के साथ jq संस्करण 1.5.1
rchome

@rchrome, संपादित समाधान अब काम करता है में CentOS7 मशीन. धन्यवाद ।
hermit.crab

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में