Serialization হল একটি প্রক্রিয়া যেখানে একটি Python অবজেক্টকে JSON (JavaScript Object Notation) ফরম্যাটে রূপান্তর করা হয়, যাতে এটি স্টোর বা ট্রান্সমিট করা যায়। TinyDB ডেটাবেসে ডেটা JSON ফরম্যাটে সংরক্ষিত থাকে, তবে সাধারণ Python অবজেক্টগুলো JSON ফরম্যাটে serialize করা যেতে পারে।
Python-এ ডেটা JSON ফরম্যাটে serialize করার জন্য json লাইব্রেরি ব্যবহার করা হয়।
JSON Serialization: Python অবজেক্ট থেকে JSON ফরম্যাটে রূপান্তর
Python অবজেক্ট যেমন ডিকশনারি, লিস্ট ইত্যাদিকে JSON ফরম্যাটে রূপান্তর করতে json.dumps() ফাংশন ব্যবহার করা হয়। এখানে dumps() এর পূর্ণরূপ dump string অর্থাৎ এটি Python অবজেক্টকে JSON স্ট্রিং হিসেবে রূপান্তর করে।
উদাহরণ: Python অবজেক্ট থেকে JSON ফরম্যাটে রূপান্তর
import json
# Python অবজেক্ট (ডিকশনারি)
data = {
'name': 'Rahim',
'age': 30,
'city': 'Dhaka'
}
# JSON স্ট্রিংয়ে serialize করা
json_data = json.dumps(data)
# ফলাফল প্রিন্ট করা
print(json_data)
আউটপুট:
{"name": "Rahim", "age": 30, "city": "Dhaka"}
JSON ফাইল এ Serialize করা
JSON ডেটাকে ফাইলেও সংরক্ষণ করা যায়। এতে json.dump() ব্যবহার করা হয়, যা JSON ডেটা সরাসরি ফাইলে লেখে।
উদাহরণ: Python অবজেক্টকে JSON ফাইল এ Serialize করা
import json
# Python অবজেক্ট
data = {
'name': 'Rahim',
'age': 30,
'city': 'Dhaka'
}
# ফাইলে JSON ডেটা লেখা
with open('data.json', 'w') as f:
json.dump(data, f)
print("Data written to 'data.json' successfully!")
ফাইলটি data.json নামক JSON ফাইল হিসেবে সেভ হবে, যেখানে ডেটা JSON ফরম্যাটে থাকবে।
JSON ডেটা Read করা (Deserialize)
JSON ডেটা পড়ে (deserialize) Python অবজেক্টে রূপান্তর করতে json.loads() (JSON string থেকে Python object) এবং json.load() (ফাইল থেকে JSON object) ব্যবহার করা হয়।
উদাহরণ: JSON string থেকে Python অবজেক্টে Deserialize করা
import json
# JSON string
json_data = '{"name": "Rahim", "age": 30, "city": "Dhaka"}'
# JSON string থেকে Python অবজেক্টে রূপান্তর করা
data = json.loads(json_data)
print(data)
আউটপুট:
{'name': 'Rahim', 'age': 30, 'city': 'Dhaka'}
উদাহরণ: JSON ফাইল থেকে Python অবজেক্টে Deserialize করা
import json
# ফাইল থেকে JSON ডেটা পড়া
with open('data.json', 'r') as f:
data = json.load(f)
print(data)
Serialization এ কিছু গুরুত্বপূর্ণ দিক
- JSON এর সীমানা: JSON শুধু string, number, array, object, true/false, এবং null ধরনের ডেটা সংরক্ষণ করতে পারে।
- Custom Objects: যদি আপনার custom Python objects থাকে, তাহলে সেগুলো serialize করার জন্য
defaultপ্যারামিটার ব্যবহার করতে হয়। যেমন,json.dumps(object, default=str)ব্যবহার করা যেতে পারে।
সারাংশ
JSON Serialization হল Python অবজেক্টকে JSON ফরম্যাটে রূপান্তর করার প্রক্রিয়া, যা স্টোর এবং ট্রান্সমিট করার জন্য উপযোগী। json.dumps() এবং json.dump() ফাংশন দিয়ে Python অবজেক্টকে JSON স্ট্রিং এবং ফাইল ফরম্যাটে রূপান্তর করা হয়। JSON ডেটা json.loads() এবং json.load() ফাংশন দিয়ে পুনরায় Python অবজেক্টে রূপান্তরিত করা যায়।
Read more