【发布时间】:2022-01-08 12:11:18
【问题描述】:
我有一个file.csv:
value1,value2
我使用以下命令转换为 JSON:
# adding headers on the fly
echo 'key1,key2' |
ruby -rcsv -rjson -e 'puts CSV.new(ARGF,headers:true).map(&:to_hash).to_json' - file.csv
输出应该是:
[{"key1":"value1","key2":"value2"}]
ruby-2.0 和 2.3 是这种情况,但是 ruby-2.7 的输出是:
[]
进一步调试表明 ruby-2.7 CSV 库不能很好地处理 ARGF,它会在 ARGF 中的第一个 file 之后停止读取(在我的情况下为标准输入)。
较新的 Ruby 版本是否也会受到此问题的影响?有没有更便携的方式来做同样的魔法?
【问题讨论】: