使用 PapaParse 解析具有 headers 的转置 CSV
Parse a transposed CSV with headers using PapaParse
我正在开发一个使用 PapaParse 作为 CSV 解析器的 CSV 上传器。对于我的 CSV,我希望我的第一列作为解析数据的 header 而不是第一行。为了获得预期的结果,我不得不在上传之前在编辑器中手动转置 CSV。
原因是当 header 位于第一列而不是第一行时,我的用户发现编辑 CSV 文件要容易得多。有什么办法可以在 PapaParse 中执行此操作(甚至 JavaScript 在 PapaParse 之外)?
if (file != null) {
Papa.parse(file, {
header: true,
complete: function (results, file) {
console.log("Parsing complete: ", results, file);
}
});
}
我建议用 PapaParse 解析数组,然后用 JS 对结果进行转置。
使用此方法:
所以它看起来像那样transpose(result.data)
-- 更新--
const transposed = transpose(result.data)
const headers = transposed.shift();
const res = transposed.map(row => row.reduce((acc, col, ind) => {acc[headers[ind]] = col; return acc}, {}))
我正在开发一个使用 PapaParse 作为 CSV 解析器的 CSV 上传器。对于我的 CSV,我希望我的第一列作为解析数据的 header 而不是第一行。为了获得预期的结果,我不得不在上传之前在编辑器中手动转置 CSV。
原因是当 header 位于第一列而不是第一行时,我的用户发现编辑 CSV 文件要容易得多。有什么办法可以在 PapaParse 中执行此操作(甚至 JavaScript 在 PapaParse 之外)?
if (file != null) {
Papa.parse(file, {
header: true,
complete: function (results, file) {
console.log("Parsing complete: ", results, file);
}
});
}
我建议用 PapaParse 解析数组,然后用 JS 对结果进行转置。
使用此方法:
所以它看起来像那样transpose(result.data)
-- 更新--
const transposed = transpose(result.data)
const headers = transposed.shift();
const res = transposed.map(row => row.reduce((acc, col, ind) => {acc[headers[ind]] = col; return acc}, {}))