papaparse 不解析完整数据
papaparse not parsing full data
我正在制作一个 React 应用程序,它从 public 文件夹中获取并显示一些 CSV 文件数据。我的反应容器看起来像这样:
import React, { Component } from 'react'
import * as Chart from "chart.js";
import { connect } from 'react-redux'
import { Bar } from 'react-chartjs-2'
import * as actions from "../actions"
import * as Papa from 'papaparse'
function mapStateToProps({stats}) {
return {
data: stats.data
}
}
class Stats extends Component {
fetchCsv(fileName) {
return fetch(fileName).then(function (response) {
let reader = response.body.getReader();
let decoder = new TextDecoder('utf-8');
return reader.read().then(function (result) {
return decoder.decode(result.value);
});
});
}
constructor(props){
super(props);
}
async componentDidMount() {
let PlayerArray = [], BallByBallArray = [], MatchArray = [],
PlayerMatchArray = [], SeasonArray = [], TeamArray = [];
let PlayerMatchData = await this.fetchCsv("Player_Match.csv");
Papa.parse(PlayerMatchData, {
complete: function(results) {
console.log("Finished:", results.data);
PlayerMatchArray = results.data;
console.log("entries.length: " + results.data.length);
}
});
}
render() {
return (
<div>
</div>
)
}
}
export default connect(
mapStateToProps, actions
)(Stats)
这是使用 fetchCsv 函数异步获取 Player_Match.csv 文件的内容,并将其存储在 PlayerMatchData 变量中。
然后 PlayerMatchData 正在被 papaparse 解析。问题是 文件中有 12700 个条目 ,它仅 在 google chrome 中获取 3776 个条目。
此外,奇怪的是它在 firefox
中获取 1660 个条目
如有任何意见,我们将不胜感激。 :)
编辑:Link 数据:https://www.kaggle.com/harsha547/indian-premier-league-csv-dataset#Player_Match.csv
好的,我得到了答案。正如@SergiuParaschiv 所说,reader.read()
只读取一个数据块。所以我改为使用 fetch
函数来完成任务。解析没有问题。
await fetch("Player_Match.csv")
.then(response => response.text())
.then(text => {
PlayerMatchData = text;
// console.log(text)
})
这将完成任务。
我正在制作一个 React 应用程序,它从 public 文件夹中获取并显示一些 CSV 文件数据。我的反应容器看起来像这样:
import React, { Component } from 'react'
import * as Chart from "chart.js";
import { connect } from 'react-redux'
import { Bar } from 'react-chartjs-2'
import * as actions from "../actions"
import * as Papa from 'papaparse'
function mapStateToProps({stats}) {
return {
data: stats.data
}
}
class Stats extends Component {
fetchCsv(fileName) {
return fetch(fileName).then(function (response) {
let reader = response.body.getReader();
let decoder = new TextDecoder('utf-8');
return reader.read().then(function (result) {
return decoder.decode(result.value);
});
});
}
constructor(props){
super(props);
}
async componentDidMount() {
let PlayerArray = [], BallByBallArray = [], MatchArray = [],
PlayerMatchArray = [], SeasonArray = [], TeamArray = [];
let PlayerMatchData = await this.fetchCsv("Player_Match.csv");
Papa.parse(PlayerMatchData, {
complete: function(results) {
console.log("Finished:", results.data);
PlayerMatchArray = results.data;
console.log("entries.length: " + results.data.length);
}
});
}
render() {
return (
<div>
</div>
)
}
}
export default connect(
mapStateToProps, actions
)(Stats)
这是使用 fetchCsv 函数异步获取 Player_Match.csv 文件的内容,并将其存储在 PlayerMatchData 变量中。
然后 PlayerMatchData 正在被 papaparse 解析。问题是 文件中有 12700 个条目 ,它仅 在 google chrome 中获取 3776 个条目。
此外,奇怪的是它在 firefox
中获取 1660 个条目如有任何意见,我们将不胜感激。 :)
编辑:Link 数据:https://www.kaggle.com/harsha547/indian-premier-league-csv-dataset#Player_Match.csv
好的,我得到了答案。正如@SergiuParaschiv 所说,reader.read()
只读取一个数据块。所以我改为使用 fetch
函数来完成任务。解析没有问题。
await fetch("Player_Match.csv")
.then(response => response.text())
.then(text => {
PlayerMatchData = text;
// console.log(text)
})
这将完成任务。