মান মূল্য: অসমর্থিত আচার প্রোটোকল: 3, পাইথন 2 আচার পাইথন 3 আচার দ্বারা ফেলা ফাইল লোড করতে পারে না?


102

আমি পাইথন 3 এ একটি ফাইল ডাম্প করার জন্য আচার ব্যবহার করি এবং পাইথন 2 এ ফাইলটি লোড করতে আমি আচার ব্যবহার করি, ভ্যালুআরআর প্রদর্শিত হয়।

তো, পাইথন 2 আচারে অজগর 3 টি আচার ডাম্প করা ফাইল লোড করা যাবে না?

আমি যদি এটা চাই? কিভাবে করবেন?


4
: আপনি ইতোমধ্যে লেখা জরা ফাইলগুলির সাথে আটকে আছে, তাহলে খুঁজে বার করো stackoverflow.com/questions/34571063/...
rysqui

উত্তর:


159

পাইথন in-তে একটি নিম্ন প্রোটোকল সংখ্যা সহ অল্পবিস্তরযুক্ত তথ্যটি আপনার লিখতে হবে Py পাইথন 3 নম্বরটি দিয়ে একটি নতুন প্রোটোকল প্রবর্তন করেছিল 3(এবং এটি ডিফল্ট হিসাবে ব্যবহার করে), তাই 2পাইথন 2 দ্বারা পড়তে পারে এমন কোনও মানটিতে ফিরে যেতে ।

protocolপ্যারামিটারটি চেক করুন pickle.dump। আপনার ফলাফল কোড এর মতো দেখাবে।

pickle.dump(your_object, your_file, protocol=2)

কোনও protocolপরামিতি নেই pickle.loadকারণ pickleফাইলটি থেকে প্রোটোকল নির্ধারণ করতে পারে।


55

protocolsআপনার ডেটা বাইনারি স্ট্রিমে রূপান্তর করতে আচার বিভিন্ন ব্যবহার করে ।

তোমার চেয়ে একটি প্রোটোকল নিম্ন পাইথন 3 নির্দিষ্ট করতে হবে 3অর্ডার পাইথন 2. ডেটা লোড করতে আপনি নির্দিষ্ট করতে পারেন পাবে মধ্যে protocolযখন invoking প্যারামিটার pickle.dump


13
কেবলমাত্র ভবিষ্যতের রেফারেন্সের জন্য, দৃশ্যত একটি প্রোটোকল রয়েছে 5যা পাইথন ৩.৮ এ প্রবর্তিত হয়েছিল যা পূর্ববর্তী সংস্করণগুলির সাথে সামঞ্জস্যপূর্ণ নয়।
ফরজাদ আবদুলহোসিনি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.