【发布时间】:2016-02-16 07:14:54
【问题描述】:
我正在尝试从网站上抓取数据以构建有关产品功能的数据集,其中每一行是一个产品,每一列是一个功能。我的爬虫返回以下 JSON 数据:
{
"data": [{
"id": "001",
"price": "$12",
"color": "blue"
}, {
"id": "002",
"price": "$13",
"color": "red"
}]
}
在过去,我能够轻松地将这些类型的数据存储在 CSV 中,如下所示(哈希=上面的 JSON 数据):
CSV.open("data.csv","w") do |c|
c << hash["data"][0].keys
end
hash["data"].each do |d|
CSV.open("data.csv","a+") do |c|
c << d.values
end
end
但是JSON数据中的字段不是常量:
{
"data": [{
"id": "001",
"price": "$12",
"color": "blue"
}, {
"id": "002",
"price": "$13",
"discount": "0.05",
"color": "red"
}]
}
我的 CSV 代码不再适用于这些数据。 discount 出现在 color 字段中,实际的 color 字段向右移动一列。
存储散列数组的最佳方法是什么?更一般地说,CSV 与基于 SQL 与基于文档的权衡是什么?
谢谢。
【问题讨论】:
标签: ruby json sqlite csv web-scraping