首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FasterCSV:读取远程CSV文件

FasterCSV:读取远程CSV文件
EN

Stack Overflow用户
提问于 2009-01-12 14:49:02
回答 5查看 7.4K关注 0票数 3

我好像不能让它起作用。我想从不同的read服务器上拉出一个CSV文件,以便在我的应用程序中读取。我想这样称呼它:

代码语言:javascript
复制
url = 'http://www.testing.com/test.csv'
records = FasterCSV.read(url, :headers => true, :header_converters => :symbol)

但这并不管用。我试着用谷歌搜索,得到的结果是这样的摘录:Practical Ruby Gems

因此,我尝试对其进行如下修改:

代码语言:javascript
复制
require 'open-uri'
url = 'http://www.testing.com/test.csv'
csv_url = open(url)
records = FasterCSV.read(csv_url, :headers => true, :header_converters => :symbol)

..。我得到了一个can't convert Tempfile into String错误(来自FasterCSV gem)。

有人能告诉我怎么做吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-01-12 22:53:51

代码语言:javascript
复制
require 'open-uri'
url = 'http://www.testing.com/test.csv'
open(url) do |f|
  f.each_line do |line|
    FasterCSV.parse(line) do |row|
      # Your code here
    end
  end
end

http://www.ruby-doc.org/core/classes/OpenURI.html http://fastercsv.rubyforge.org/

票数 5
EN

Stack Overflow用户

发布于 2009-01-12 14:52:38

例如,我会使用Net::HTTP检索文件,并将其提供给FasterCSV

摘自ri Net::HTTP

代码语言:javascript
复制
 require 'net/http'
 require 'uri'

 url = URI.parse('http://www.example.com/index.html')
 res = Net::HTTP.start(url.host, url.port) {|http|
   http.get('/index.html')
 }
 puts res.body
票数 1
EN

Stack Overflow用户

发布于 2010-03-03 06:33:33

你只是有一个小小的打字错误。您应该使用FasterCSV.parse而不是FasterCSV.read

代码语言:javascript
复制
data = open('http://www.testing.com/test.csv')
records = FasterCSV.parse(data)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/435634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档