Javascript 使用PapaParse解析转置的CSV和标头
我正在开发一个CSV上传程序,它使用CSV解析器。对于我的CSV,我希望我的第一列充当解析数据的标题,而不是第一行。为了得到预期的结果,我不得不在上传之前在编辑器中手动转换CSV 这样做的原因是,当标题位于第一列而不是第一行时,我的用户发现编辑CSV要容易得多。有没有一种方法可以在PapaParse(甚至是PapaParse之外的JavaScript)中实现这一点Javascript 使用PapaParse解析转置的CSV和标头,javascript,jquery,json,csv,papaparse,Javascript,Jquery,Json,Csv,Papaparse,我正在开发一个CSV上传程序,它使用CSV解析器。对于我的CSV,我希望我的第一列充当解析数据的标题,而不是第一行。为了得到预期的结果,我不得不在上传之前在编辑器中手动转换CSV 这样做的原因是,当标题位于第一列而不是第一行时,我的用户发现编辑CSV要容易得多。有没有一种方法可以在PapaParse(甚至是PapaParse之外的JavaScript)中实现这一点 我建议使用PapaParse解析数组,然后使用JS对结果执行转置 使用此方法: 所以它看起来像是转置(result.data) --
我建议使用PapaParse解析数组,然后使用JS对结果执行转置 使用此方法: 所以它看起来像是
转置(result.data)
--更新--
我在前面研究过这个问题,但是当我想使用标题时,问题就来了。当PapaParse输出结果时,标题不正确,因此进行转置无法解决该问题。您能否给出一个示例,说明您希望接收什么输入(csv)、什么输出JSON?非常感谢!这很有效!我不得不改变一些事情,比如将“header:true”设置为“header:false”,以使其正常工作。对不起,我刚刚意识到了这个问题。。
if (file != null) {
Papa.parse(file, {
header: true,
complete: function (results, file) {
console.log("Parsing complete: ", results, file);
}
});
}
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}, {}))