एक्सटर्नल डेटा रिप्रेजेंटेशन (XDR) के लिए एन्कोडर्स और डिकोडर्स। जब हम विभिन्न बाहरी स्रोतों के बीच डेटा ट्रांसपोर्ट करते हैं, तो यह आमतौर पर इस्तेमाल किया जाने वाला फॉर्मेट है। यह जटिल डेटा संरचनाओं के निर्माण और हस्तांतरण के लिए उपयोगी है। XDR OSI प्रेजेंटेशन लेयर से जुड़ी सेवा प्रदान करता है।
नीचे दिए गए प्रोग्राम में हम देखते हैं कि xdrlib मॉड्यूल का उपयोग करके डेटा कैसे पैक और अनपैक किया जाता है।
उदाहरण
import xdrlib
p = xdrlib.Packer()
print(type(p))
lst = [1, 2, 3]
p.pack_list(lst, p.pack_int)
print(p)
u = xdrlib.Unpacker(p.get_buffer())
print(type(u))
print(u.unpack_list(u.unpack_int))
उपरोक्त कोड चलाने से हमें निम्न परिणाम मिलता है:
आउटपुट
<xdrlib.Packer object at 0x000002272F3D6FD0> [1, 2, 3]
मुख्य क्लासेस और मेथड्स:
Packer()- डेटा पैक करने के लिएUnpacker(buffer)- डेटा अनपैक करने के लिएpack_int(),unpack_int()- इंटीजर के लिएpack_float(),unpack_float()- फ्लोट के लिएpack_string(),unpack_string()- स्ट्रिंग्स के लिएpack_list(list, pack_func)- सूची पैक करेंunpack_list(unpack_func)- सूची अनपैक करेंget_buffer()- पैक्ड बाइनरी डेटा प्राप्त करें
पूर्ण उदाहरण:
import xdrlib
# पैकिंग
p = xdrlib.Packer()
p.pack_int(42)
p.pack_float(3.14)
p.pack_string(b"hello")
p.pack_list([1, 2, 3], p.pack_int)
data = p.get_buffer()
# अनपैकिंग
u = xdrlib.Unpacker(data)
print(u.unpack_int()) # 42
print(u.unpack_float()) # 3.14
print(u.unpack_string()) # b'hello'
print(u.unpack_list(u.unpack_int)) # [1, 2, 3]
उपयोग के मामले:
- नेटवर्क प्रोटोकॉल (RPC, NFS)
- क्रॉस-प्लेटफॉर्म डेटा सीरियलाइज़ेशन
- अलग-अलग एंडियननेस वाले सिस्टम्स के बीच डेटा एक्सचेंज