Rails Insights

Parsi Data gyda Ruby

Mae parsi data yn broses hanfodol yn y byd datblygu meddalwedd, yn enwedig pan fyddwn yn delio â data a dderbynnir o ffynonellau allanol fel APIau, ffeiliau, neu ddata a gynhelir yn y we. Mae Ruby, gyda'i symlrwydd a'i ddulliau grymus, yn cynnig dulliau effeithiol ar gyfer parsi data. Yn yr erthygl hon, byddwn yn archwilio sut i ddefnyddio Ruby i ddadansoddi a pharsi data, gan gynnwys enghreifftiau cod a chamau i ddilyn.

Beth yw Parsi Data?

Mae parsi data yn golygu cymryd data o ffurf benodol a'i drosi i mewn i strwythur y gallwn ei ddeall a'i ddefnyddio. Gall hyn gynnwys:

  • Darllen ffeiliau CSV
  • Dadansoddi HTML neu XML
  • Derbyn data o APIau JSON

Mae Ruby yn cynnig nifer o gemau a dulliau i wneud y broses hon yn haws. Gadewch i ni edrych ar rai o'r dulliau hyn.

Parsi Data o Ffeiliau CSV

Mae ffeiliau CSV (Comma-Separated Values) yn un o'r ffurfiau mwyaf cyffredin ar gyfer storio data. Mae Ruby yn cynnig gemau fel 'CSV' sy'n gwneud parsi data o ffeiliau CSV yn syml. Dyma enghraifft o sut i ddarllen ffeil CSV:

require 'csv'

CSV.foreach('data.csv', headers: true) do |row|
  puts row['Enw'] # Disgleirio'r enw o'r ffeil
end

Yn yr enghraifft hon, rydym yn defnyddio'r dull 'foreach' i fynd drwodd i bob rhes yn y ffeil CSV. Mae 'headers: true' yn sicrhau ein bod yn defnyddio'r penawdau fel allweddi i'r data.

Creu Ffeil CSV

Gallwn hefyd greu ffeil CSV yn hawdd. Dyma sut:

require 'csv'

CSV.open('new_data.csv', 'w') do |csv|
  csv << ['Enw', 'Oed', 'Dinas']
  csv << ['Tom', 30, 'Caerdydd']
  csv << ['Sara', 25, 'Aberystwyth']
end

Mae'r cod hwn yn creu ffeil newydd o'r enw 'new_data.csv' a'i llenwi gyda data. Mae'n hawdd ychwanegu mwy o ddata trwy ychwanegu mwy o linellau.

Parsi Data o HTML

Mae parsi data o HTML yn gallu bod yn heriol, ond mae Ruby yn cynnig gemau fel 'Nokogiri' sy'n gwneud y broses hon yn haws. Mae Nokogiri yn gallu dadansoddi HTML a XML, gan ganiatáu i ni ddod o hyd i ddata penodol yn hawdd.

Defnyddio Nokogiri

Dyma enghraifft o sut i ddefnyddio Nokogiri i ddadansoddi HTML:

require 'nokogiri'
require 'open-uri'

url = 'https://www.example.com'
doc = Nokogiri::HTML(URI.open(url))

doc.css('h1').each do |header|
  puts header.text
end

Yn yr enghraifft hon, rydym yn defnyddio 'open-uri' i agor URL a'i ddadansoddi gyda Nokogiri. Mae 'css' yn caniatáu i ni ddod o hyd i'r holl benawdau h1 yn y ddogfen HTML.

Parsi Data o JSON

Mae JSON (JavaScript Object Notation) yn ffurf arall boblogaidd ar gyfer storio data, yn enwedig wrth dderbyn data o APIau. Mae Ruby yn cynnwys cymorth ar gyfer JSON trwy'r gem 'json'. Dyma sut i barsi data o JSON:

require 'json'
require 'open-uri'

url = 'https://api.example.com/data'
data = JSON.parse(URI.open(url).read)

data.each do |item|
  puts item['name']
end

Yn yr enghraifft hon, rydym yn defnyddio 'open-uri' i ddarllen data o API a'i ddadansoddi gyda 'JSON.parse'. Mae hyn yn caniatáu i ni fynd drwodd i'r data a'i ddefnyddio yn ein rhaglen.

Cyfuniad o Ddulliau

Gallwn gyfuno'r dulliau hyn i greu rhaglen sy'n dadansoddi data o sawl ffynhonnell. Er enghraifft, gallwn ddarllen data o ffeil CSV, ei gyfuno â data o API, a'i arddangos yn HTML. Dyma enghraifft syml:

require 'csv'
require 'json'
require 'open-uri'

# Darllen data o ffeil CSV
csv_data = CSV.read('data.csv', headers: true)

# Darllen data o API
url = 'https://api.example.com/data'
api_data = JSON.parse(URI.open(url).read)

# Cyfuno'r ddau ddata
combined_data = csv_data.map do |row|
  {
    name: row['Enw'],
    age: row['Oed'],
    api_info: api_data.find { |item| item['name'] == row['Enw'] }
  }
end

# Arddangos y data cyfuniad
combined_data.each do |data|
  puts "#{data[:name]} - #{data[:age]} - #{data[:api_info]}"
end

Mae'r enghraifft hon yn dangos sut y gallwn gymryd data o sawl ffynhonnell a'i gyfuno i greu darlun mwy cyflawn o'r wybodaeth sydd ar gael.

Casgliad

Mae parsi data yn rhan bwysig o ddatblygu meddalwedd, ac mae Ruby yn cynnig nifer o offer a gemau i wneud y broses hon yn haws. O ddarllen ffeiliau CSV i ddadansoddi HTML a JSON, mae Ruby yn cynnig dulliau grymus a hawdd i'w defnyddio. Gobeithio bod yr erthygl hon wedi rhoi gwybodaeth ddefnyddiol i chi am sut i barsi data gyda Ruby. Peidiwch ag anghofio ymarfer a phrofi'r codau a drafodwyd yma i wella eich sgiliau!

Published: August 12, 2024

© 2024 RailsInsights. All rights reserved.