我一直在尋找一個相當具體的功能,可能不存在於jq
。如果你知道它不在那裏,我將不勝感激,提供一些建議來解決這個問題。JQ:PigLatin風格FLATTEN功能
我正在處理一個公衆dataset。我已成功地將數據減少到以下行格式:
[field1,field2,field3,[author1,...,authorN],[author_type1,...,author_typeN]]
我使用的去使用此格式的bash命令如下:
find aps-dataset-metadata_subdir_path/ -name '*.json' | \
xargs cat | \
jq --compact-output \
'select(.authors != null) | [.identifiers.doi, .date, .journal.id, [.authors[].name], [.authors[].type]]'
注意,authorN
和author_typeN
在原始數據中的同一個對象(即具有相同的父對象)。
我一直在尋找一種方式,從每個這些生產線以下:
[field1,field2,field3,author1,author_type1]
[field1,field2,field3,author2,author_type2]
...
...
[field1,field2,field3,authorN,author_typeN]
在jq
平化功能似乎是平壓平而不會產生新的列表。如果你們中的一些人知道PigLatin,我想要的就是PigLatin built-in Flatten運營商。
同樣,我知道它可能不會在jq
中執行。在這種情況下,我可能會後處理Python
的輸出,或者你們在答案中提出的其他任何令人敬畏的方式。
非常感謝!