我可以使用一些幫助來思考我正在解決的難題。我打算用Ruby來解決它,但可以使用另一種語言,如Javascript/Node。我需要幫助解決問題和設計。通過具有可變列數的CSV進行搜索
我目前正在研究一個命令行程序,該程序讀取CSV數據,根據參數搜索CSV,然後根據查找結果生成輸出。
CSV行具有兩種格式之一。一個很簡單的餐館,食品,它們的價格列表:
restaurant ID, price, item label
但對於餐館提供組合餐,那裏可以在超值套餐任意數量的 項目:
restaurant ID, price, item 1 label, item 2 label, ...
所以這個想法是,你可以運行這個程序,用CSV文件的參數來讀取你想吃的食物,並且它輸出他們應該去的餐廳,以及它將花費的總價格。只要總成本最小化,就可以購買額外的物品。
樣品data.csv
1, 4.00, burger
1, 8.00, tofu_log
2, 5.00, burger
2, 6.50, tofu_log
$ foodfinder.rb data.csv burger tofu_log
=> 2, 11.5
與具有多個食品行
同樣:
5, 4.00, extreme_fajita
5, 8.00, fancy_european_water
6, 5.00, fancy_european_water
6, 6.00, extreme_fajita, jalapeno_poppers, extra_salsa
$ foodfinder.rb data.csv fancy_european_water extreme_fajita
=> 6, 11.0
由於數據規範化是不是一種選擇,我不能將這些推到DB - 我想知道如何去思考如何高效地解析CSV。此外,一些行有多個食品項目,我不確定如何存儲這些。我猜想我想將行導入到散列中,然後以某種方式搜索散列。任何指導,巫師?
如果CSV具有標準,則該文件不遵守它。 – RyPeck
@RyPeck:有各種CSV標準,但沒有人注意它們:) –
同意CSV格式是可怕的!儘管挑戰的一部分是清理數據。 –