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.getJason দিয়ে 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}")
end2. 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.getCSV প্যার্সিং এবং প্রসেসিং:
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 ডেটা প্রসেসিং অত্যন্ত সহজ এবং কার্যকর, যা আপনাকে ডেটা ম্যানিপুলেশন, বিশ্লেষণ এবং কনভার্সন কাজে সহায়তা করে।
Read more