Ruby 将对象数组转换为CSV

Ruby 将对象数组转换为CSV,ruby,csv,Ruby,Csv,我试图生成一个CSV来将一些记录导入Postgres DB,但我遇到了一些问题\ 我有以下目标 obj = { "id"=>1, "event_id"=>2, "user_id"=>3, "items"=>[{:type => "laptop"}] } 使用以下代码: require 'csv' CSV.generate_line([obj['id'],obj['event_id']obj['user_id']obj['items']]) 在尝试

我试图生成一个CSV来将一些记录导入Postgres DB,但我遇到了一些问题\

我有以下目标

obj = {
  "id"=>1,
  "event_id"=>2,
  "user_id"=>3,
  "items"=>[{:type => "laptop"}]
}
使用以下代码:

require 'csv'
CSV.generate_line([obj['id'],obj['event_id']obj['user_id']obj['items']])
在尝试导入postgres时,由于“\\laptop”之前和之后的“\\laptop”,我以下面的一行结束

1,2,3,\"{:type=>\"\"laptop\"\"}\"\n

您希望项目的标题看起来像什么?这是因为to_s在该对象上被调用。我很好奇为什么它会被存储为CSV。Postgres支持JSON存储,您的结构似乎更适合用JSON表示。开始之前记录的格式是什么?为什么不跳过CSV并将其直接放入数据库中呢?我遵循Brennan的建议并使用JSON。工作就像一种享受!