首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >csv-parse正在抛出无效的开头引号:在一行字段中找到一个引号。

csv-parse正在抛出无效的开头引号:在一行字段中找到一个引号。
EN

Stack Overflow用户
提问于 2022-01-27 14:31:19
回答 1查看 3.6K关注 0票数 1

我知道还有其他的帖子,但似乎没有一个能解决我的问题。我使用csv-解析和节点js。这是我试图解析的CSV头和记录。

代码语言:javascript
运行
复制
sku,description,productUnitOfMeasure,unitCost,retailPrice,wholesalePrice,dropShipPrice,assemblyCost,planner,comments,productId,fileUpdate,SkuStatus,Master Planning Family,Category,Sub-Category,Brand,ShortCode,Import/Domestic,Inventory Value,Master Pack Quantity,Pallet / TI / HI,40HC Quantity,Product Group ID
032406021945-GreenBay,TFAL B2080264 INIT TNS GRY SAUTE PN 8",EA,7.72,13.99,0.00,0.00,0,Whitney Ehlke-2307,,032406021945,2022-01-25,New,COOKWARE,OPENSTOCK,NONE,T-FAL,B2080264,Domestic,208.44,3,0/0/0,0,23

我无法控制这个文件。我只需要能够解析它。您将看到在描述的末尾有一个双引号:TFal B2080264 INI TNS GRY SAUTE PN 8"

我需要双引号保持不变,并将其解析为一个字段。我一直在犯这个错误:

无效的开头引号:在第2行的字段中找到一个引号。

这句话不是开场白。技术上来说是结束了。但无论如何,它不会解析。

这是我目前的代码:

代码语言:javascript
运行
复制
const parser = fs.createReadStream(filePath).pipe(
    parse({ columns: true, relax_quotes: true, escape: '\\', ltrim: true, rtrim: true })
)

我已经删除了其中的一些,并尝试了另一些,但没有结果。有什么主意吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-27 15:11:51

这段代码适用于最新的csv-解析版本(5.0.4)。您使用的csv解析包的哪个版本?我之所以这样问是因为它是看起来像,该选项可能只是最近才从relax重命名为relax_quotes

因此,我认为解决办法要么是:

  1. 升级到最新的csv解析,并指示relax_quotes,或
  2. 保持当前版本的csv解析,并指示relax

为了确保relax_quotes与当前库一起工作,我测试了以下代码并按预期工作:

代码语言:javascript
运行
复制
const csv = require('csv-parse');
const fs = require('fs');

const parser = fs.createReadStream("70880341.csv").pipe(
  csv.parse({ columns: true, relax_quotes: true, escape: '\\', ltrim: true, rtrim: true })
)

const records = [];

parser.on('readable', function() {
  let record;
  while ((record = parser.read()) !== null) {
    records.push(record);
  }
});

parser.on('error', function(err) {
  console.error(err.message);
});

parser.on('end', function() {
  console.log(records);
});

结果:

代码语言:javascript
运行
复制
[{
    sku: '032406021945-GreenBay',
    description: 'TFAL B2080264 INIT TNS GRY SAUTE PN 8"',
    productUnitOfMeasure: 'EA',
    ...
}]
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70880341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档