我正在尝试解析来自 Ruby 应用程序中内容类型为 text/csv 的 API 的响应。我正在使用 HTTParty 库发出请求。我知道文件名通常存储在 Content-Disposition 下的响应头中,但 HTTParty 似乎没有正确解析这个特定的头。
我最好的修复尝试是这样的:
csv_response = HTTParty.get('service.com/csv')
content_disposition = CGI::parse(catalog_response.headers['Content-Disposition'])
这是我卡住的地方,因为 CGI 解析返回一个散列,文件名对象包含前导空格和文件名周围的转义引号,如:
{' filename' => '\"file.csv\"'}
我是否正确解析了响应?是否有更合理的方式使用 HTTParty 访问文件名?
最佳答案
您不需要文件名。您可以改用 CSV.parse。
csv_response = HTTParty.get('service.com/csv')
CSV.parse(csv_response.body, headers: true) do |row|
# do something
end
如果您的 CSV 没有标题行,请删除 headers: true
。
https://stackoverflow.com/questions/40119207/
相关文章:
objective-c - requestAVAssetForVideo 不显示完成 block
cmake - 如何在 externalproject_add 中设置命令参数
reactjs - 如何在常规 HTML 页面中引用 React 组件
kubernetes - 如何使用 kubernetes 执行 docker diff 命令
excel - 如何根据时间应用 WorksheetFunction.CountIfs?
javascript - 在javascript中将对象作为参数传递的性能