将.json转换为.csv

3pvhb19x  于 2023-11-20  发布在  其他
关注(0)|答案(2)|浏览(125)

Ubuntu 22.04.2 LTE上的jq版本jq-1.6
希望将大型.json文件转换为.csv
json示例:

{"_id":{"$oid":"5200a366e36f237975000783"},"derived_form":{"$numberInt":"1"},"intransitive":true,"lemma":"badbad","phonetic":"bɐdbɐt","pos":"VERB","root":{"radicals":"b-d-b-d"},"sources":["Spagnol2011","Falzon2013"],"glosses":[{"gloss":"to fornicate","examples":[]},{"gloss":"to cough a lot","examples":[]}],"norm_freq":{"$numberDouble":"0.0"}}

字符串
如何转换为.csv:
第一个月

jq '.lemma, .phonetic, .pos, .intransitive, .root.radicals, .glosses.[].gloss'


在Ubuntu中抛出错误,但在jqplay.org上不会

mm5n2pyu

mm5n2pyu1#

要获得所需的csv输出,请执行以下操作:

$ jq -r '"\(._id[]), \(.lemma), \(.phonetic), \(.pos), \(.intransitive), \(.root.radicals), \"\([.glosses[].gloss] | join(","))\""' file
5200a366e36f237975000783, badbad, bɐdbɐt, VERB, true, b-d-b-d, "to fornicate,to cough a lot"

字符串

ee7vknir

ee7vknir2#

jq '.lemma, .phonetic, .pos, .intransitive, .root.radicals, .glosses.[].gloss'`

字符串
在Ubuntu中抛出错误,但在jqplay.org上不会
您的Ubuntu机器可能没有使用jq 1.7,这是当前在jqplay.org上运行的版本。这个版本引入了一个新的语法,您正在使用.glosses.[]。从release info
允许点用于链式值迭代器.[].[]?@wader #2650

$ jq -n '{"a": [123]} | .a[]'
123
# now this also works
$ jq -n '{"a": [123]} | .a.[]'
123


因此,请将方法改为使用.glosses[]

jq '.lemma, .phonetic, .pos, .intransitive, .root.radicals, .glosses[].gloss'

相关问题