菜鸟问题。我想从csv中的单个列中读取值,然后通过await方法解析每个值以从API中提取数据并将数据附加到json。
这类似于下面的伪代码: i。)读取csv ['id'],ii。)将该列中的每个值添加到API调用中,iii。)追加到json,iv。)继续直到该列中的所有值都完成。
这是我到目前为止编写的代码:
async function writeData() {
const csv = require('csv-parser')
const results = [];
fs.createReadStream('C:\\Users\\User\\Documents\\testingclean.csv')
.pipe(csv())
.on('data',(data)=> results.push(data))
.on('end', () => {
console.log(results)
});
const cookieJar = await getCookieJar();
const fighter = await boxrec.getPersonById(cookieJar,468841);
这目前仅读取ID为468841的人的csv并提取数据,对于node.js来说我是一个新手,无法根据我所在的Id列中的值弄清楚如何将值分配给getPersonById遍历。
以下是我的数据示例:
{
'': '49',
id: '512687',
name: 'Joey Dawejko',
age: '29.0',
last6: "['win', 'win', 'loss', 'loss', 'loss', 'win']",
points: '34',
rating: '50',
stance: 'orthodox',
draw: '4',
loss: '7',
win: '20',
countryid: 'US',
countryName: 'USA',
cityName: 'Philadelphia'
}
]
{
'': '0',
id: '489762',
name: 'Andy Ruiz Jr',
hasBoutScheduled: 'True',
last6: "['win', 'loss', 'win', 'win', 'win', 'win']",
points: '754',
rating: '100',
stance: 'orthodox',
draw: '0',
loss: '1',
win: '33',
countryid: 'US',
countryName: 'USA',
cityName: 'Imperial'
答案 0 :(得分:0)
我相信这会引起注意。
async function writeData() {
const csv = require('csv-parser')
const results = [];
fs.createReadStream('C:\\Users\\User\\Documents\\testingclean.csv')
.pipe(csv())
.on('data',(data)=> results.push(data))
.on('end', async () => {
const cookieJar = await getCookieJar();
const promises = [];
results.forEach((data) => {
promises.push(boxrec.getPersonById(cookieJar,data.id));
})
const fighters = await Promise.all(promises); // Fighters is an array
fighters.forEach((fighter) => {
// DO STUFF USING FIGHTER
})
});
}