【问题标题】:Parse CSV from URL into Array using Javascript使用 Javascript 将 CSV 从 URL 解析为数组
【发布时间】:2015-06-22 19:30:01
【问题描述】:

我对 javascript 比较陌生,但我想从在线保存并每小时更新的 csv 文件中获取一些数据。

数据应该稍后显示在表格上,但我在将其保存到数组时遇到了一些问题。 csv 文件以逗号分隔,有 9 列,超过 6000 行,是一长串文本,因此没有换行符。第一行包含用户名,每个带有特殊字符的用户名都用引号括起来。

过去几天我尝试了几个代码,但都没有成功。我可以将在线 CSV 文件解析成数组吗?是否有类似 SQL 或将文件保存到我的服务器的替代方法?

记住:文件每小时更新一次..

注意:我发现的代码并没有真正的问题,所有这些都经过其他人的测试并且似乎可以工作。但仅适用于本地文件,而不适用于实际 URL!

【问题讨论】:

  • 您为什么不分享您的工作成果,以便我们可以从那里帮助您?
  • 我的字符串看起来像:username1, adress1, age1, children1, "u╣ername2", adress2, age2, children2,...

标签: javascript html arrays csv


【解决方案1】:

您可以使用此https://code.google.com/p/jquery-csv/ 插件,并且可以使用$.csv.toArrays(csv) 将多行csv 转换为二维数组或使用$.csv.toObjects(csv) 转换为对象。查看this 帖子或this 了解更多信息

$.ajax({
    url: "urlto/filename.csv",
    success: function (data) {
        var arr = $.csvtoArray(data);
        _oncomplete(arr);
    },
    dataType: "text",
    });

_oncomplete: function (arr) {
    //Your array here
    }

【讨论】:

  • 是否支持在线链接作为来源?
  • 是的,正如stackoverflow.com/a/23763523/909535 中提到的那样!检查更新的答案
  • 但它不是多行 csv!
  • 然后可以使用csv.toArray(csv) 将单个条目字符串解析为数组
  • 你能用一个示例 csv 做一个快速的 jsfiddle 吗?只有数组的输出,我非常感激!
【解决方案2】:

您可以查看 papaparse 以获得可靠且功能齐全的 CSV 解析库。

setInterval javascript 函数可以让您每小时更新一次数据,以防您决定在客户端开发此部分。

是否有替代方法,例如使用 SQL 或将文件保存到我的服务器?

是的,有替代方案,正确的架构取决于您的用例。有多少访问者会访问您的网页并查看结果、您的应用程序的重要性、数据源的可靠性等。如果您不确定这些,您应该与在这些问题上更有经验的 Web 开发人员交谈.

您可能希望每隔一小时在服务器上解析一次 CSV 文件,并在其中存储一份数据副本,以提供给您的访问者。这样,如果上游数据源不可用,您仍然拥有过去数据的副本。

PS:

过去几天我尝试了几个代码,但都没有成功

stackOverflow 就是这样:获取有关代码中特定问题的帮助,而不是询问一般性问题(可以使用搜索引擎轻松找到答案)。

【讨论】:

  • 数据一点都不重要,而且来源非常可靠,所以没有必要将它保存到我的服务器上。我发现的代码并没有真正的问题,所有这些都经过其他人的测试并且似乎有效。但仅适用于本地文件,不适用于实际 URL!
猜你喜欢
  • 1970-01-01
  • 2015-05-21
  • 2019-07-21
  • 2016-05-08
  • 1970-01-01
  • 2016-12-05
  • 2011-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多