gpt4 book ai didi

Ruby CSV::Row 删除新行

转载 作者:数据小太阳 更新时间:2023-10-29 07:34:05 27 4
gpt4 key购买 nike

我正在打开一个 CSV 文件,然后将其转换为 JSON。除了 JSON 数据在字符串中有 \n 字符外,一切正常。据我从打印和尝试咀嚼它可以看出,这些不是最后一个元素的一部分。当我打印 row 时,它确实有 \n

require 'csv'
require 'json'
def csv_to_json (tmpfile)
JSON_ARRAY = Array.new
CSV.foreach(tmpfile) do |row|
print row[row.length - 1]
if row[row.length - 1].chomp! == nil
print row
end
JSON_ARRAY.push(row)
end
return JSON_ARRAY.to_json
end

返回的 JSON 看起来像这样

["field11,field12\n",
"field21,field22\n"]

如何删除这些换行符?

编辑:这些是 CSV::Row 对象,不支持 chompstrip

等字符串操作

tmpfile 格式

field11,field21
field21,field22

最佳答案

row_sep设置为nil

JSON_ARRAY.push( row.to_s( row_sep: nil ) )

JSON_ARRAY.push( row.to_csv( row_sep: nil ) )

正如评论指出的那样,CSV::row#to_sCSV::row#to_csv 的别名,它会自动在每一行之后添加一个行分隔符。要解决此问题,您只需将 row_sep 设置为 nil,它就不会在每行末尾添加 \n

希望对您有所帮助。

关于Ruby CSV::Row 删除新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22213559/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com