如何使用Node.js(f和v键)将BigQuery的JSON响应转换为CSV?

时间:2016-08-25 11:15:06

标签: json node.js csv google-bigquery

我收到来自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键组成。这会造成混淆。

2 个答案:

答案 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)

一些想法: