0
我還是相當新的編碼,我試圖瞭解操縱CSV文件。Ruby:將值寫入CSV文件中的特定位置
下面的代碼打開指定的CSV文件,轉到列B(header = url)中的CSV文件中的每個網址,並在網頁上找到價格。從CSV文件
實施例的數據:
Store,URL,Price
Walmart,http://www.walmart.com/ip/HP-11.6-Stream-Laptop-PC-with-Intel-Celeron-Processor-2GB-Memory-32GB-Hard-Drive-Windows-8.1-and-Microsoft-Office-365-Personal-1-yr-subscription/39073484
Walmart,http://www.walmart.com/ip/Nextbook-10.1-Intel-Quad-Core-2-In-1-Detachable-Windows-8.1-Tablet/39092206
Walmart,http://www.walmart.com/ip/Nextbook-10.1-Intel-Quad-Core-2-In-1-Detachable-Windows-8.1-Tablet/39092206
我無法編寫價格在同一CSV相鄰列C(=標題價格)。
require 'nokogiri'
require 'open-uri'
require 'csv'
contents = CSV.open "mp_lookup.csv", headers: true, header_converters: :symbol
contents.each do |row|
row_url = row[:url]
goto_url = Nokogiri::HTML(open(row_url))
new_price = goto_url.css('meta[itemprop="price"]')[0]['content']
#----
#In this section, I'm looking to write the value of new_price to the 3rd column in the same CSV file
#----
end
在過去,我已經能夠使用:
in_file = open("mp_lookup.csv", 'w')
in_file.write(new_price)
但是,這似乎並沒有在這種情況下工作。
任何幫助表示讚賞!
你需要使用CSV嗎? CSV是一種可變記錄長度格式,因此更改行通常意味着逐行復制文件並沿途更改所需的行。 CSV是用於數據交換的一種很好的格式,但它造成了一個糟糕的數據庫。 –
我想我不需要。我看過沿着File.open,file.readlines.each,line.split(',')[1]等代碼的代碼。你認爲類似的東西會更好嗎? – NickJ987
我剛纔意識到,我應該澄清一點,我必須使用CSV或文本文件,但我不一定非要使用CSV寶石或其他任何東西。 – NickJ987