ruby - 从二维数组创建 CSV::Table
ruby - create CSV::Table from 2d array
我有一个二维数组...是他们创建 CSV::Table 的任何方法,第一行被视为 headers 并假设所有行具有相同数量的 headers.
下面是在 ruby 中创建 CSV 文件的基本示例:
hash = {a: [1, 2, 3], b: [4, 5, 6]}
require 'csv'
CSV.open("my_file.csv", "wb") do |csv|
csv << %w(header1 header2 header3)
hash.each_value do |array|
csv << array
end
end
@diwanshu-tyagi这是否有助于解决您的问题?如果不是,请添加您的输入值示例,我会更新此答案。
谢谢
您可以使用 CSV.parse
.
从二维数组创建 CSV::Table
object 和 headers
首先将二维数组转换为字符串,其中每行中的值由逗号连接,每行由换行符连接,然后将该字符串与 [=15] 一起传递给 CSV.parse
=]选项
require 'csv'
sample_array = [
["column1", "column2", "column3"],
["r1c1", "r1c2", "r1c3"],
["r2c1", "r2c2", "r2c3"],
["r3c1", "r3c2", "r3c3"],
]
csv_data = sample_array.map {_1.join(",")}.join("\n")
table = CSV.parse(csv_data, headers: true)
p table
p table.headers
p table[0]
p table[1]
p table[2]
=>
#<CSV::Table mode:col_or_row row_count:4>
["column1", "column2", "column3"]
#<CSV::Row "column1":"r1c1" "column2":"r1c2" "column3":"r1c3">
#<CSV::Row "column1":"r2c1" "column2":"r2c2" "column3":"r2c3">
#<CSV::Row "column1":"r3c1" "column2":"r3c2" "column3":"r3c3">
我有一个二维数组...是他们创建 CSV::Table 的任何方法,第一行被视为 headers 并假设所有行具有相同数量的 headers.
下面是在 ruby 中创建 CSV 文件的基本示例:
hash = {a: [1, 2, 3], b: [4, 5, 6]}
require 'csv'
CSV.open("my_file.csv", "wb") do |csv|
csv << %w(header1 header2 header3)
hash.each_value do |array|
csv << array
end
end
@diwanshu-tyagi这是否有助于解决您的问题?如果不是,请添加您的输入值示例,我会更新此答案。
谢谢
您可以使用 CSV.parse
.
CSV::Table
object 和 headers
首先将二维数组转换为字符串,其中每行中的值由逗号连接,每行由换行符连接,然后将该字符串与 [=15] 一起传递给 CSV.parse
=]选项
require 'csv'
sample_array = [
["column1", "column2", "column3"],
["r1c1", "r1c2", "r1c3"],
["r2c1", "r2c2", "r2c3"],
["r3c1", "r3c2", "r3c3"],
]
csv_data = sample_array.map {_1.join(",")}.join("\n")
table = CSV.parse(csv_data, headers: true)
p table
p table.headers
p table[0]
p table[1]
p table[2]
=>
#<CSV::Table mode:col_or_row row_count:4>
["column1", "column2", "column3"]
#<CSV::Row "column1":"r1c1" "column2":"r1c2" "column3":"r1c3">
#<CSV::Row "column1":"r2c1" "column2":"r2c2" "column3":"r2c3">
#<CSV::Row "column1":"r3c1" "column2":"r3c2" "column3":"r3c3">