我正在尝试使用csvtojson获取一个csv文件并将其转换为json。我一直遇到语法错误,请帮助
const csvfilepath = require("../csvfiles/usethis.csv");
const csv = require('csvtojson');
router.post('/upload', (req,res) => {
csv()
.fromFile(csvfilepath)
.then((jsonObj)=>{
console.log(jsonObj)
})
})
我的usethis.csv看起来像这个
Date,Time,CoreUsage ,TotalCPU ,MemoryClock
13.10.2021,53:54.4,13.6,13.6,1796.6
13.10.2021,53:56.5,12.7,12.7,1796.6
13.10.2021,53:58.5,21.3,21.3,1796.6
13.10.2021,54:00.5,11.2,11.2,1796.6
13.10.2021,54:02.6,5.5,5.5,1796.6
13.10.2021,54:04.6,13.1,13.1,1796.6
13.10.2021,54:06.7,14.6,14.6,1796.6
13.10.2021,54:08.7,16.9,16.9,1796.6
这是我一直在获取的错误
13.10.2021,53:54.4,13.6,13.6,1796.6
^^^^^
Syntax Error: Unexpected number
at wrapSafe (internal/modules/cjs/loader.js:915:16)
at Module._compile (internal/modules/cjs/loader.js:963:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Module. Require (internal/modules/cjs/loader.js:887:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/mnt/c/users/blake/desktop/Fullmern/routes/benchmark.js:12:21)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module. Load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Module. Require (internal/modules/cjs/loader.js:887:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/mnt/c/users/blake/desktop/Fullmern/server.js:19:15)
at Module._compile (internal/modules/cjs/loader.js:999:30)
[nodemon] app crashed - waiting for file changes before starting...
谢谢
尝试在每个值上使用双引号
Date,Time,CoreUsage,TotalCPU,MemoryClock
"13.10.2021","53:54.4","13.6","13.6","1796.6"
"13.10.2021","53:56.5","12.7","12.7","1796.6"
尝试替换
Date,Time,CoreUsage ,TotalCPU ,MemoryClock
带有
Date,Time,CoreUsage,TotalCPU,MemoryClock //remove extra space
您不能像在这里尝试的那样require()
一个.CSV
文件:
const csvfilepath = require("../csvfiles/usethis.csv");
需要知道如何做两件事:
- 加载并运行一个Javascript文件
- 读取并解析.JSON文件(如果有,则仅当该文件具有
.json
文件扩展名时(
因此,require()
试图将CSV解析为Javascript,并立即遇到Javascript语法错误,因为.CSV格式的数据不是有效的Javascript(这并不奇怪(。
如果要将.CSV文件读取到内存中,请使用fs.readFileSync()
或fs.promises.readFile()
(取决于需要同步操作还是异步操作(。
如果要读取和解析.CSV文件,请使用NPM上的众多模块之一来读取/解析CSV文件。