我收到来自bigquery的回复,我希望将整个数据转换为CSV。
"rows": [
{
"f": [
{
"v": "1"
},
{
"v": "204"
},
{
"v": "1464830471"
},
{
"v": "4"
},
{
"v": "5593693585347748"
}
]
},
{
"f": [
{
"v": "1"
},
{
"v": "205"
},
{
"v": "1464865550"
},
{
"v": "2"
},
{
"v": "5593693585347748"
}
]
}
现在我希望这个f和v像这样转换。
data.csv
1,204,1464830471,4,5593693585347748
1,205,1464865550,2,5593693585347748.
此处Bigquery响应由f和v键组成。这会造成混淆。
答案 0 :(得分:1)
如果x
是您的对象,请尝试此操作:
var x = {"rows":[{"f":[{"v":"1"},{"v":"204"},{"v":"1464830471"},{"v":"4"},{"v":"5593693585347748"}]},{"f":[{"v":"1"},{"v":"205"},{"v":"1464865550"},{"v":"2"},{"v":"5593693585347748"}]}]};
var output = "";
x.rows.map(function(e){
var values = [];
e.f.map(function(o){
values.push(o.v);
});
output += values.join(",") + "\n";
})
console.log(output);
打印出来:
1,204,1464830471,4,5593693585347748
1,205,1464865550,2,5593693585347748
答案 1 :(得分:1)
一些想法:
GROUP_CONCAT
(旧版SQL)或STRING_AGG
(标准SQL),以便为每行生成逗号分隔的字符串。