【发布时间】:2021-08-09 19:19:17
【问题描述】:
我正在尝试使用这行代码 await yahooStockAPI.getHistoricalPrices(startDate, endDate, symbol, '1d'); 保存从 API 收集的股票数据,并将其保存为名为 newData 的数组,但是,我一直得到一个空数组。如果我这样做 console.log(newData); 我可以看到类似这样的输出(对于我在代码中定义的每个符号)...
{
error: false,
currency: 'USD',
response: [
{
date: 1627047000,
open: 147.5500030517578,
high: 148.72000122070312,
low: 146.9199981689453,
close: 148.55999755859375,
volume: 71447400,
adjclose: 148.33775329589844
},
{
date: 1626960600,
open: 145.94000244140625,
high: 148.1999969482422,
low: 145.80999755859375,
close: 146.8000030517578,
volume: 77338200,
adjclose: 146.58038330078125
},...
... 但是,保存在我设置的目录中的 CSV 文件是空的,我收到错误 The input to objects-to-csv must be an array of objects 。我想将上面的输出作为对象数组newData 然后使用 NPM 包将其转换为 CSV 文件。本质上,数组是这样的(与const symbol 的顺序相同:
const newData = [
{date: '...', open: open price for apple, high: highest price for amazon, low:..., etc},
{date: '...', open: open price for amazon, high: highest price for google, low:..., etc},
];
我不介意数组中的每个对象是否没有每只股票的股票代码,因为我有订购的const symbol
这是代码:
const yahooStockAPI = require('yahoo-stock-api');
const ObjectsToCsv = require('objects-to-csv');
const symbol = ['AAPL','AMZN','GOOGL']
symbol.forEach(main);
let newData = [];
async function main(symbol) {
const startDate = new Date('01/01/2018');
const endDate = new Date('08/01/2021');
newData = await yahooStockAPI.getHistoricalPrices(startDate, endDate, symbol, '1d');
//console.log(newData);
(async () => {
const csv = new ObjectsToCsv(newData);
await csv.toDisk('C:/Users/Rafael Oliveira/Desktop/teste/test2.csv');
})();
};
main();
提前谢谢你
【问题讨论】:
标签: javascript arrays csv