如何显示和导入Feed网址中的数据?

时间:2011-02-16 18:34:41

标签: ruby-on-rails ruby ruby-on-rails-3

我是否要显示并从Feed网址中提取数据? 我只对导入/显示那些有10的catogory_id

的兴趣感兴趣

这是Feed网址:

http://www.euroads.dk/system/api.php?username=x&password=x&function=campaign_feed&eatrackid=13614&version=5

Feed上的格式为:

 campaignid;;advertid;;title;;startdate;;enddate;;amountleft;;price;;percent;;campaigntype;;targetage;;targetsex;;category;;category_id;;cpc;;advert_type;;advert_title;;bannerwidth;;bannerheight;;textlink_length;;textlink_text;;advert_url;;advert_image;;advert_code;;campaign_teaser;;reward/cashback;;SEM;;SEM restrictions

以下是Feed的示例代码:

campaignid;;advertid;;title;;startdate;;enddate;;amountleft;;price;;percent;;campaigntype;;
targetage;;targetsex;;category;;category_id;;cpc;;advert_type;;advert_title;;bannerwidth;;bannerheight;;textlink_length;;textlink_text;;advert_url;;advert_image;;advert_code;;campaign_teaser;;reward/cashback;;SEM;;SEM restrictions <br/> <br/> 2603;;377553;;MP3 afspiller;;2010-07-21;;2011-12-31;;-1;;67,00;;;;Lead kampagne;;Over 18;;Alle;;Elektronik;Musik, film & spil;;7,13;;0,97;;Banner;;;;930;;180;;0;;;;http://tracking.euroads.dk/system<br/> <br/> /tracking.php?sid=1&cpid=2603&adid=377553&acid=4123&eatrackid=13614;;http://banner.euroads.dk/banner/1/2603/banner_21153.gif;;;;http://banner.euroads.dk/banner/1/2603/teaserbanner_1617.gif;;Allowed;;

1 个答案:

答案 0 :(得分:0)

如果';;'用作列分隔符,则数据格式看起来像CSV的变体。基于此:

require 'csv'
CSV.parse(data, :col_sep => ';;') do |csv|
  # do something with each record
end

data将是您收到的内容。

在循环内部,csv将是一个包含每个记录字段的数组。通过循环的第一次将是标题,通过csv的后续时间将是数据记录。

有时您会看到';;;;',这意味着有一个空字段;例如,field;;;;field会转换为['field',nil,'field']中的csv。你需要弄清楚你想用nil记录做什么。我建议你可能想把它们映射到空字符串('')。