Min*_*ohn 5 csv ruby-on-rails ruby-on-rails-4
我正在尝试从网址导入CSV文件,但我得到了Errno::ENAMETOOLONG: file name too long.我按如下方式处理文件:
require 'open-uri'
url = "http://de65.grepolis.com/data/csv.txt"
url_data = open(url).read()
SmarterCSV.process(url_data, {
...
})
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
你必须传递一个应该在服务器上的文件名.你现在传递所有数据.做这样的事情
require 'open-uri'
url = "http://de65.grepolis.com/data/csv.txt"
url_data = open(url).read()
File.open('/tmp/file_name', 'w') { |file| file.write(url_data) }
SmarterCSV.process('/tmp/file_name',{ })
Run Code Online (Sandbox Code Playgroud)
我在使用标准 CSV 库通过 http url 拉入 CSV 文件时遇到了同样的问题。我能够解决这个问题,而无需使用如下代码写入临时服务器文件:
require 'open-uri'
require 'csv'
url = "http://de65.grepolis.com/data/csv.txt"
url_data = open(url).read()
CSV.parse(url_data, headers: true).each do |row|
# per row processing code ...
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4413 次 |
| 最近记录: |