【发布时间】:2019-10-11 06:03:39
【问题描述】:
我正在从包含csv 的URL 中抓取数据。我正在抓取的数据格式是这样的:
我在 Node.js 中执行此操作并使用 nodejs-requestify package:https://www.npmjs.com/package/requestify
当我控制台 response.getBody() 时,它的格式与提供的屏幕截图完全相同。
我正在尝试将其转换为 JSON array,我可以在循环中进行迭代以将值插入数据库,但是,我正在努力将数据转换为 JSON 格式。
我尝试过以多种方式拆分数组 (comma, single quote, double quote)。我已经尝试过JSON.parse() 和JSON.stringify()(以及两者的组合)。
这是我正在使用的代码。最终,当我在循环中 console.log 行时,这应该是 JSON 格式的位置,但是,它仍然以逗号分隔值的形式出现。
requestify.get('URL').then(function(response) {
// Get the response body
var dataBody = response.getBody();
var lineArray = dataBody.split('\r\n');
var data = JSON.parse(JSON.stringify(lineArray));
for(var s = 0; s < data.length; s++) {
var rows = data[s];
console.log(rows)
}
});
【问题讨论】:
-
一般来说,假设在换行符处拆分会给你 CSV 的行是不安全的。对于带引号的字段,可以在字段中出现换行符。我强烈建议使用现有的 CSV 模块,例如 csv-parse 或 csv-parser,它将为您处理边缘情况。
-
好的,我会研究 csv-parse
-
所以 lineArray 为您提供了图像中显示的值?还有一件事是你正在做 JSON.stringify JSON.parse 这是不正确的。
-
我解决了这个问题。作为答案发布。