Ruby 将对象数组转换为CSV
我试图生成一个CSV来将一些记录导入Postgres DB,但我遇到了一些问题\ 我有以下目标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']]) 在尝试
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。工作就像一种享受!