我正在从 Twitter 的 API 流式传输数据,并在我设置的 Node 服务器上处理它。我目前正在解析数据,因此我有一个如下所示的对象: {"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.
}
})
有谁知道如何做到这一点,最好对我的代码进行一些小调整?非常感谢!
最佳答案
使用appendFile代替writeFile。
关于javascript - 使用 Fs/Node/Json2Csv 将行添加到 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48575660/