JSON এবং CSV ডেটা প্রসেসিং

File I/O (ফাইল ইনপুট/আউটপুট) - এলিক্সির (Elixir) - Computer Programming

306

JSON এবং CSV ডেটা প্রসেসিং in Elixir

Elixir তে JSON এবং CSV ডেটা ফাইল প্রসেসিং অত্যন্ত সাধারণ এবং কার্যকরী কাজ। Elixir এর শক্তিশালী মডিউল এবং লাইব্রেরিগুলি ব্যবহার করে আপনি JSON এবং CSV ফাইলগুলি সহজেই পার্স, ম্যানিপুলেট এবং প্রসেস করতে পারেন। এখানে JSON এবং CSV ডেটা প্রসেসিং এর পদ্ধতি এবং উদাহরণ দেওয়া হবে।


1. JSON ডেটা প্রসেসিং in Elixir

Elixir তে JSON ডেটা প্রসেস করার জন্য জনপ্রিয় লাইব্রেরি Jason এবং Poison ব্যবহৃত হয়। এই লাইব্রেরিগুলি JSON ডেটা পার্স এবং এনকোড করতে সাহায্য করে।

Jason ব্যবহার করে JSON ডেটা পার্স এবং এনকোড করা

Jason লাইব্রেরি Elixir তে JSON ডেটা প্রসেস করার জন্য সবচেয়ে জনপ্রিয় লাইব্রেরি। এটি দ্রুত এবং সহজে JSON এনকোড এবং ডিকোড করতে সক্ষম।

Jason ইনস্টলেশন:

প্রথমে, আপনার প্রোজেক্টে Jason লাইব্রেরি ইনস্টল করতে হবে। এটি ইনস্টল করতে আপনার mix.exs ফাইলে এটি অ্যাড করুন:

defp deps do
  [
    {:jason, "~> 1.2"}
  ]
end

তারপর, নিচের কমান্ডটি চালান:

mix deps.get
Jason দিয়ে JSON এনকোড এবং ডিকোড:

JSON এনকোড:

# Map কে JSON স্ট্রিংয়ে রূপান্তর
data = %{name: "Alice", age: 30, city: "New York"}

# এনকোডিং
json = Jason.encode!(data)
IO.puts(json)

এখানে, %{name: "Alice", age: 30, city: "New York"} ম্যাপটি JSON স্ট্রিং এ রূপান্তরিত হচ্ছে।

JSON ডিকোড:

# JSON স্ট্রিং
json = "{\"name\":\"Alice\",\"age\":30,\"city\":\"New York\"}"

# ডিকোডিং
{:ok, decoded_data} = Jason.decode(json)
IO.inspect(decoded_data)

এখানে, JSON স্ট্রিংটি একটি ম্যাপে রূপান্তরিত হচ্ছে।

Error Handling with Jason:

যেহেতু JSON ডিকোড করতে গিয়ে সমস্যা হতে পারে (যেমন ভুল ফরম্যাট), তাই আপনি সঠিক error handling করতে পারেন।

case Jason.decode(json) do
  {:ok, data} -> IO.inspect(data)
  {:error, reason} -> IO.puts("Error decoding JSON: #{reason}")
end

2. CSV ডেটা প্রসেসিং in Elixir

CSV (Comma Separated Values) ডেটা প্রক্রিয়াকরণের জন্য Elixir তে বেশ কিছু লাইব্রেরি রয়েছে। সবচেয়ে জনপ্রিয় লাইব্রেরি হচ্ছে NimbleCSV, যা দ্রুত এবং কার্যকরীভাবে CSV ডেটা প্যার্স এবং ম্যানিপুলেট করতে সাহায্য করে।

NimbleCSV ব্যবহার করে CSV ডেটা পার্স করা

NimbleCSV একটি খুবই দ্রুত এবং হালকা লাইব্রেরি যা CSV ফাইলগুলি সহজে পার্স এবং প্রসেস করতে ব্যবহৃত হয়।

NimbleCSV ইনস্টলেশন:

প্রথমে, আপনার প্রোজেক্টে NimbleCSV ইনস্টল করতে হবে। এটি ইনস্টল করতে আপনার mix.exs ফাইলে এটি অ্যাড করুন:

defp deps do
  [
    {:nimble_csv, "~> 0.1"}
  ]
end

তারপর, নিচের কমান্ডটি চালান:

mix deps.get
CSV প্যার্সিং এবং প্রসেসিং:
defmodule MyCSVProcessor do
  use NimbleCSV, separator: ",", escape: "\""

  def parse_csv do
    csv_string = "name,age,city\nAlice,30,New York\nBob,25,Los Angeles"
    
    # Parse the CSV string
    csv_data = NimbleCSV.parse_string(csv_string)
    IO.inspect(csv_data)
  end
end

MyCSVProcessor.parse_csv()

এখানে, NimbleCSV.parse_string/1 ফাংশনটি একটি CSV স্ট্রিং নিয়ে তা একটি লিস্ট হিসেবে রিটার্ন করছে। প্রতিটি লাইন একটি আলাদা লিস্ট হিসেবে রূপান্তরিত হয়েছে।

CSV ফাইল পড়া:
defmodule MyCSVFileProcessor do
  use NimbleCSV, separator: ",", escape: "\""

  def read_csv do
    File.read!("sample.csv")
    |> NimbleCSV.parse_string()
    |> IO.inspect()
  end
end

MyCSVFileProcessor.read_csv()

এখানে, File.read! ফাংশনটি একটি CSV ফাইল পড়ে এবং NimbleCSV.parse_string/1 দিয়ে ফাইলের কনটেন্ট প্যার্স করা হয়।


3. Writing CSV Files

NimbleCSV দিয়ে CSV ফাইল লিখতেও সাহায্য পাওয়া যায়। NimbleCSV এর generate/2 ফাংশন ব্যবহার করে আপনি ডেটাকে CSV ফরম্যাটে লিখতে পারেন।

defmodule MyCSVWriter do
  use NimbleCSV, separator: ",", escape: "\""

  def write_csv do
    data = [
      ["name", "age", "city"],
      ["Alice", 30, "New York"],
      ["Bob", 25, "Los Angeles"]
    ]
    
    # Write to CSV string
    csv_string = NimbleCSV.generate(data)
    IO.puts(csv_string)
  end
end

MyCSVWriter.write_csv()

এখানে, NimbleCSV.generate/2 ফাংশনটি ডেটা ম্যাট্রিক্সটি CSV ফরম্যাটে রূপান্তরিত করেছে।


4. CSV and JSON Conversion

কিছু ক্ষেত্রে, আপনাকে CSV থেকে JSON এ রূপান্তর করতে হতে পারে বা JSON থেকে CSV তে রূপান্তর করতে হতে পারে। এখানে, আপনি কীভাবে তা করতে পারেন তা দেখানো হলো।

CSV থেকে JSON রূপান্তর:

defmodule CsvToJson do
  use NimbleCSV, separator: ",", escape: "\""

  def csv_to_json(csv_string) do
    csv_string
    |> NimbleCSV.parse_string()
    |> Enum.map(fn [name, age, city] -> %{name: name, age: age, city: city} end)
    |> Jason.encode!()
  end
end

csv_data = "name,age,city\nAlice,30,New York\nBob,25,Los Angeles"
IO.puts(CsvToJson.csv_to_json(csv_data))

এখানে, CSV ডেটাকে JSON এ রূপান্তরিত করা হয়েছে, যেখানে প্রথমে CSV ডেটা প্যার্স করা হয়েছে এবং তারপর সেটি Jason.encode!/1 ফাংশনের মাধ্যমে JSON ফরম্যাটে রূপান্তরিত করা হয়েছে।

JSON থেকে CSV রূপান্তর:

defmodule JsonToCsv do
  use NimbleCSV, separator: ",", escape: "\""

  def json_to_csv(json_data) do
    json_data
    |> Jason.decode!()
    |> Enum.map(fn %{name: name, age: age, city: city} -> [name, age, city] end)
    |> NimbleCSV.generate()
  end
end

json_data = "[{\"name\":\"Alice\",\"age\":30,\"city\":\"New York\"},{\"name\":\"Bob\",\"age\":25,\"city\":\"Los Angeles\"}]"
IO.puts(JsonToCsv.json_to_csv(json_data))

এখানে, JSON ডেটাকে CSV তে রূপান্তরিত করা হয়েছে।


সারসংক্ষেপ

  • JSON ডেটা প্রসেসিং: Elixir তে Jason লাইব্রেরি দিয়ে JSON ডেটা পার্স এবং এনকোড করা যায়।
  • CSV ডেটা প্রসেসিং: NimbleCSV লাইব্রেরি ব্যবহার করে দ্রুত এবং কার্যকরীভাবে CSV ডেটা প্যার্স এবং লিখা যায়।
  • CSV থেকে JSON এবং JSON থেকে CSV রূপান্তর: Elixir তে আপনি সহজেই JSON থেকে CSV এবং CSV থেকে JSON রূপান্তর করতে পারেন Jason এবং NimbleCSV লাইব্রেরি ব্যবহার করে।

Elixir তে JSON এবং CSV ডেটা প্রসেসিং অত্যন্ত সহজ এবং কার্যকর, যা আপনাকে ডেটা ম্যানিপুলেশন, বিশ্লেষণ এবং কনভার্সন কাজে সহায়তা করে।

Content added By
Promotion

Are you sure to start over?

Loading...