Ruby 1.8 및 FasterCSV를 사용하고 있습니다.루비를 사용하여 반복되는 열을 제거하는 방법 FasterCSV
내가 읽고있는 csv 파일에는 여러 개의 반복되는 열이 있습니다.
| acct_id | amount | acct_num | color | acct_id | acct_type | acct_num |
| 345 | 12.34 | 123 | red | 345 | 'savings' | 123 |
| 678 | 11.34 | 432 | green | 678 | 'savings' | 432 |
... 등
내가 그것을 응축하고 싶습니다:이 작업을 수행하는 범용 방법은
| acct_id | amount | acct_num | color | acct_type |
| 345 | 12.34 | 123 | red | 'savings' |
| 678 | 11.34 | 432 | green | 'savings' |
거기가?
row = row.to_hash
이 중복 소지품 의지는
row.delete(6) #delete second acct_num field
row.delete(4) #delete second acct_id field
교체 할 수있는 하드 삭제를 제거 할 가정
headers = CSV.read_line(file)
headers = CSV.read_line # get rid of garbage line between headers and data
FasterCSV.filter(file, :headers => headers) do |row|
row.delete(6) #delete second acct_num field
row.delete(4) #delete second acct_id field
# additional processing on the data
row['color'] = color_to_number(row['color'])
row['acct_type'] = acct_type_to_number(row['acct_type'])
end
당신이 일하지 않은 것은 무엇입니까? –
작동하지만 우아한 것은 아닙니다. 예 : 다른 인덱스를 가진 다른 테이블에서 비슷한 문제가 있습니다. – mkirk