【问题标题】:Using Fs/Node/Json2Csv To Add Rows to CSV使用 Fs/Node/Json2Csv 向 CSV 添加行
【发布时间】:2018-07-12 12:57:54
【问题描述】:

我正在从 Twitter 的 API 流式传输数据,并在我设置的节点服务器上处理它。我目前正在解析数据,所以我有一个如下所示的对象:{"name": //name, "tweet": //textofthetweet, "url": //tweetURL}

我希望能够将这些对象中的每一个作为新行添加到 CSV 文件中,为我收到的每条推文添加一个新行。

现在,我知道如何在每次创建此对象时创建单个 CSV。如何调整此代码以便将新条目添加到 CSV 文件中,而不是覆盖它?

以下是相关的代码:

var param =  {follow: 'a bunch of twitter ID's go here'
var followIds = [//The same Twitter IDs go here //]
twitterClient.stream('statuses/filter',param,function(stream) {
stream.on('data', function(tweet) {

  // Variables used to store CSV update (and the CSV column names).
  var update = [];
  var columns = ["name","tweet","URL"];

  var i;
  for(i = 0; i <followIds.length; i++){
    if(followIds[i] == tweet.user.id_str){ // if so, get contents

      var tweetURL = `https://twitter.com/${tweet.user.screen_name}/status/${tweet.id_str}`

      let name = tweet.user.name;
      let tweetText = tweet.text;

      /////  PREPARE UPDATE TO CSV HERE //////
      update.push({"name": name, "tweet": tweetText, "url": tweetURL})



      ///// THIS PART OF THE CODE NEEDS TO CHANGE /////
      var csv = json2csv({ data: update, fields: columns})
        fs.writeFile('twitterData.csv',csv,function(err){
        if (err) throw err;
        console.log('File Saved')
      })
    }
     update = []; // Clear update here.
  }   
})

有谁知道如何做到这一点,最好对我的代码进行一些小调整?非常感谢!

【问题讨论】:

    标签: javascript json node.js csv writefile


    【解决方案1】:

    使用 appendFile 代替 writeFile。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多