PapaParse的API有一个异步回调函数.我想知道如何将其转化为承诺.例如:
Papa.parse(fileInput.files[0], {
complete: function(results) {
console.log(results);
}
});
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激!
在使用JavaScript的papa.parse执行的过程中,是否可以将"csv"文件的标题更改为大写?
提前致谢.
我只需要从远程 csv 文件中提取标题。
我目前的方法如下:
Papa parse 有一种方法来流式传输数据并单独查看每一行,这很好,我可以使用 parser.abort() 终止流以防止它在第一行之后继续前进,如下所示:
Papa.parse(csv_file_and_path,{header:true, worker:true,
download: true,
step: function(row, parser)
{
//DO MY STUFF HERE
parser.abort();
}
});
Run Code Online (Sandbox Code Playgroud)
这工作正常,但因为我使用的是远程文件,它必须下载数据才能读取它。即使代码在解析第一行后将控制权释放回浏览器,在解析找到第一行并为我提供所需的信息后,下载仍会继续很长时间,特别是对于下载可以持续很长时间的大文件在我得到我需要的东西之后的时间。
有没有更有效的方法来做到这一点?我可以阻止 papa parse 下载整个文件吗?
我试过使用
Papa.parse(csv_file,{header:true,
download: true,
preview:1,
complete: function(results){
//DO MY STUFF HERE
}
});
Run Code Online (Sandbox Code Playgroud)
但这做同样的事情,它下载整个文件,但与第一种方法一样,在解析第一行后将控制权交还给浏览器。
如何用Papa Parse读取本地文件?我有一个本地调用的文件challanges.csv,但经过多次尝试后我无法用Papa Parse解析它.
var data;
Papa.parse('challanges.csv', {
header: true,
dynamicTyping: true,
complete: function(results) {
console.log(results);
data = results.data;
}
});
Run Code Online (Sandbox Code Playgroud)
据我所知,我在将csv文件作为File打开时遇到问题.我怎么能用javascript做到这一点?
我试图用chart.js绘制一个条形图,它使用多个标签,以便我可以操纵它们.我已经设法用折线图做了,并尝试扩展我在那里做的没有运气.我收到了这个错误.什么可能导致它?
"未捕获的TypeError:在非对象上调用Object.defineProperty".
问题出在数据中的某个地方:{}因为当我将数据作为一个简单的2索引数组时,它运行正常.
编辑:单步执行dataset = null;
var com_passed = rows[rows.length-2]["# Common Passed"];
var com_failed = rows[rows.length-2]["# Common Failed"];
var ctx = document.getElementById("common_chart");
ctx.height = 50;
var historicalChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ["Passed", "Failed"],
datasets: [
{
data: com_passed,
label: "Passed",
fillColor: "red"
},
{
data: com_failed,
label: "Failed",
fillColor: "green"
}
]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero:true,
responsive: false,
maintainAspectRatio: true
}
}]
}
}
});
Run Code Online (Sandbox Code Playgroud) 我正在使用Papa Parse解析Graphs的CSV文件.我希望在解析文件后将数据存储在React状态.Papa.Parse()不返回任何内容,并且结果以异步方式提供给回调函数.此外,setState()在异步回调中不起作用.此问题类似于从CSV检索已解析的数据.
我尝试使用下面的代码将数据存储在状态中,但正如预期的那样它不起作用.
componentWillMount() {
function getData(result) {
console.log(result); //displays whole data
this.setState({data: result}); //but gets error here
}
function parseData(callBack) {
var csvFilePath = require("./datasets/Data.csv");
var Papa = require("papaparse/papaparse.min.js");
Papa.parse(csvFilePath, {
header: true,
download: true,
skipEmptyLines: true,
complete: function(results) {
callBack(results.data);
}
});
}
parseData(getData);
}
Run Code Online (Sandbox Code Playgroud)
数据在getData()中可用,但我想提取它.
我应该如何将数据存储在状态或其他变量中,以便我可以将其用于图形?
我目前正致力于从Node应用程序解析远程csv产品供稿,并希望使用Papa Parse来做到这一点(因为我过去在浏览器中取得了成功).
Papa Parse Github:https://github.com/mholt/PapaParse
我最初的尝试和网络搜索并没有准确地说明如何做到这一点.Papa自述文件说Papa Parse现在与Node兼容,因此Baby Parse(用于提供一些节点解析功能)已被折旧.
这是一个指向文档节点部分的链接,适用于将来在这个问题上绊倒的人:https://github.com/mholt/PapaParse#papa-parse-for-node
从该doc段开始,看起来Node中的Papa Parse可以解析可读流而不是File.我的问题是;
有没有办法利用可读流功能来使用Papa下载/解析Node中的远程CSV,这与浏览器中的Papa如何使用XMLHttpRequest实现同样的目标有什么相似之处?
对于未来可见性 对于那些搜索该主题(并避免重复类似问题)的人,尝试利用此处描述的远程文件解析功能:http://papaparse.com/docs#remote-files将导致您的以下错误安慰:
"未处理的拒绝ReferenceError:未定义XMLHttpRequest"
我已经在官方存储库上打开了一个问题,并将更新此问题,因为我了解了有关需要解决的问题的更多信息.
我使用 Papaparse 和 Typescript 来解析本地文件,效果很好。
我这样做是这样的:
parse(file, {
header: true,
dynamicTyping: true,
complete: (results) =>
console.log(results)
});
Run Code Online (Sandbox Code Playgroud)
但我想强输入结果。我有一个接口,解析的结果将始终返回一个具有以下属性的对象数组:
export interface Person {
name: string;
age: number;
location: string;
}
Run Code Online (Sandbox Code Playgroud)
我们如何输入结果?
我找到了这个Reddit 帖子,并尝试了他们的解决方案,但它不起作用:
parse<Person[]>(file, {
header: true,
dynamicTyping: true,
complete: (results: Person) =>
console.log(JSON.stringify(results.age))
});
Run Code Online (Sandbox Code Playgroud) 我正在使用 Papa Parse JavaScript 库将 JSON 对象数组转换为 CSV。有没有办法以某种方式排列 CSV 列。
例如; 我得到的列是:
OrderStatus、canOp、OpDesc、ID、OrderNumber、FinishTime、UOM、StartTime
但想安排为:
ID、OrderNumber、OrderStatus、StartTime、FinishTime、canOp、OpDesc、UOM
我得到 CSV 为未排列的原因是因为 JSON 数据如下所示:
json = [
{
OrderStatus: "Good",
canOp:"True",
OpDesc:"Good to go",
ID:"100",
OrderNumber:"1000101",
FinishTime:"20:50",
UOM:"K",
StartTime:"18:10"
},
...
]
Run Code Online (Sandbox Code Playgroud)
谢谢
我一直在寻找这个解决方案,但似乎找不到。chart.js 支持这个吗?
我试图用 papaparse 解析数据,但由于我的知识有限,我找不到解决方案。