मैं Python3.2 में बनाए गए डेटा सरणी को डेटा करने का प्रयास कर रहा हूं, इसे उठाएं, और फिर इसे Python2.7 में खोलें। हालांकि, डेटा का कुछ हिस्सा है कि Python2.7 ऑब्जेक्ट कर रहा है, भले ही डेटा के नमूने पर यह ठीक हो, और मैं सोच रहा था कि क्या गलत हो रहा है।प्रोटोकॉल 2 का उपयोग करके पिकलिंग: पायथन 3-> 2 डेटा
Python3.2 मेंतो:
import pickle
with open('c:\\test.pickle', mode='wb') as f:
pickle.dump(t_array, f, 2)
तब, जब Python2.7 में पढ़ने:
import pickle
f = open('c:\\test.pickle', mode='rb')
t_data = pickle.load(f)
त्रुटि है:
File "C:\Python27\lib\pickle.py", line 1378, in load
return Unpickler(file).load()
File "C:\Python27\lib\pickle.py", line 858, in load
dispatch[key](self)
File "C:\Python27\lib\pickle.py", line 1217, in load_build
setstate(state)
TypeError: must be char, not unicode
डेटा की एक सरणी है डिक्ट्स, दो गहरे में घोंसला, उदाहरण:
{'key3': '3', 'key2': 1.1, 'key1': 1, 'dict': {'dkey2': 2, 'dkey1': 1}}
क्या (शायद) गलत हो रहा है? क्या मूल (बड़े) डेटासेट में समस्या का कारण बनने का कोई आसान तरीका है?
क्या आप उस डेटा के टेक्स्ट प्रस्तुति के लिए एक लिंक पोस्ट कर सकते हैं जिसे आप डंप कर रहे हैं (माना जाता है कि यह टेक्स्ट के रूप में प्रतिनिधित्व योग्य है)? – Taymon
यह ~ 30 एमबी फ़ाइल है (मसालेदार होने पर), इसलिए मुझे यकीन नहीं है कि यह कितना उपयोगी होगा। यह कारण का भी एक हिस्सा है कि मुझे त्रुटि के विशेष कारण की पहचान करने में कुछ परेशानी क्यों है ... सभी डेटा टेक्स्ट के रूप में प्रतिनिधित्व योग्य है और दिए गए उदाहरण के समान ही है, बस अधिक कुंजी-मूल्य जोड़े के साथ। – cohoz
ठीक है, उदाहरण मेरे लिए काम करता है (हालांकि, ज़ाहिर है, तार यूनिकोड ऑब्जेक्ट्स के रूप में वापस आते हैं)। तो मैं वास्तव में यह नहीं बता सकता कि क्या गलत हो रहा है। – Taymon