将.json转换为.csv

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

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

  1. {"_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:
第一个月

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


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

mm5n2pyu

mm5n2pyu1#

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

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

字符串

ee7vknir

ee7vknir2#

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

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

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


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

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

展开查看全部

相关问题