当我使用 `sequel` 从 csv 文件将数据导入 postgresql 时出现错误
I have an error when I import the data into postgresql from csv file with `sequel`
我正在尝试将数据从 csv 文件导入到 postgresql,如下所示。
csv = CSV.open(path, { col_sep: ',', headers: :first_row })
MatchDB.db.copy_into(:property,
data: csv,
format: :csv
)
但是我遇到了这样的错误。
TypeError: wrong argument type CSV::Row (expected String)
有人知道我该如何解决吗?
正如您在 Sequel
’s tests, the Database#copy_into
方法中看到的那样,需要一个字符串,其中列由逗号分隔,行由行分隔符 \n
.
您正在尝试传递一个 ruby 内部 CSV
表示,它是 [一般来说有点] 数组的数组。我不是 ruby CSV
方面的大师,但要从中制作出合适的字符串,可以使用:
csv.map { |row| row.join ',' }.join "\n"
总结:
csv = CSV.open(path, { col_sep: ',', headers: :first_row })
MatchDB.db.copy_into(:property,
data: csv.map { |row| row.join ',' }.join "\n",
format: :csv
)
我正在尝试将数据从 csv 文件导入到 postgresql,如下所示。
csv = CSV.open(path, { col_sep: ',', headers: :first_row })
MatchDB.db.copy_into(:property,
data: csv,
format: :csv
)
但是我遇到了这样的错误。
TypeError: wrong argument type CSV::Row (expected String)
有人知道我该如何解决吗?
正如您在 Sequel
’s tests, the Database#copy_into
方法中看到的那样,需要一个字符串,其中列由逗号分隔,行由行分隔符 \n
.
您正在尝试传递一个 ruby 内部 CSV
表示,它是 [一般来说有点] 数组的数组。我不是 ruby CSV
方面的大师,但要从中制作出合适的字符串,可以使用:
csv.map { |row| row.join ',' }.join "\n"
总结:
csv = CSV.open(path, { col_sep: ',', headers: :first_row })
MatchDB.db.copy_into(:property,
data: csv.map { |row| row.join ',' }.join "\n",
format: :csv
)