【问题标题】:How to avoid the error which throws a csvtojson如何避免引发 csvtojson 的错误
【发布时间】:2020-03-15 13:21:27
【问题描述】:

我尝试使用 csvtojson

const csv = require("csvtojson");
const csvFilePath = require('./../../books.csv');
csv()
.fromFile(csvFilePath)
.then((jsonObj)=>{
    console.log(jsonObj);
})

我的 file.csv 是

Book,Author,Amount,Price
The Compound Effect,Darren Hardy,5,9.48
The 7 Habits of Highly Effective People,Stephen R. Covey,4,23.48
The Miracle Morning,Hal Elrod,10,21.34
Influence: The Psychology of Persuasion,Robert B. Cialdini,4,12.99
The ONE Thing,Gary Keller,1,11.18

我有下一个错误

The Compound Effect,Darren Hardy,5,9.48
^^^^^^^^

SyntaxError: Unexpected identifier
 at Module._compile (internal/modules/cjs/loader.js:723:23)

怎么了?谢谢)

【问题讨论】:

    标签: node.js csvtojson


    【解决方案1】:

    问题已通过更改路径解决)

    const csvFilePath = './../../books.csv';
    

    const csvFilePath = `${__dirname}/../../books.csv`;
    

    但是,我认为在这种情况下使用“__dirname”不是一个好主意。如果您对此有任何想法,请写出来)

    【讨论】:

    • __dirname 给出了这个JS文件所在的当前目录路径,路径的其他部分取决于books.csv文件的位置。所以,在这种情况下,如果CSV文件目录在JS文件目录之上,就可以了。例如。 stackoverflow.com/a/7083067/7673764
    【解决方案2】:

    这里的问题是你正在使用函数require('./../../books.csv'); 来导入你的文件。

    阅读文档后,我可以保证您只需将路径传递给 CSV 文件。

    所以,你的代码应该是这样的:

    const csv = require('csvtojson');
    const csvFilePath = './../../books.csv';
    
    csv().fromFile(csvFilePath).then((jsonObj)=>{
        console.log(jsonObj);
    })
    

    所需的输出应该是:

    [ { Book: 'The Compound Effect',
        Author: 'Darren Hardy',
        Amount: '5',
        Price: '9.48' },
      { Book: 'The 7 Habits of Highly Effective People',
        Author: 'Stephen R. Covey',
        Amount: '4',
        Price: '23.48' },
      { Book: 'The Miracle Morning',
        Author: 'Hal Elrod',
        Amount: '10',
        Price: '21.34' },
      { Book: 'Influence: The Psychology of Persuasion',
        Author: 'Robert B. Cialdini',
        Amount: '4',
        Price: '12.99' },
      { Book: 'The ONE Thing',
        Author: 'Gary Keller',
        Amount: '1',
        Price: '11.18' } ]
    

    【讨论】:

    • 如果我按照你上面说的做,我有下一个错误'未处理的拒绝错误:文件不存在。检查以确保 csv 的文件路径正确。'
    • 使用函数'require'遇到的问题是这个函数读取一个JavaScript文件,执行该文件,然后继续返回exports对象。它不应该读取 CSV 文件。关于文件路径,您只需仔细检查即可。
    • 由于我无法访问您的计算机,因此很难知道文件的位置,所以我只是假设 './../../books.csv' 是你的文件。
    【解决方案3】:

    我认为您应该在 .csv 文件中包含 " 或使用 quote 处理选项

    https://www.npmjs.com/package/csvtojson#parameters

    【讨论】:

    猜你喜欢
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 2010-11-14
    • 2022-10-15
    • 2018-10-29
    • 2018-07-04
    相关资源
    最近更新 更多