я пытаюсь передать данные в массив данных, созданный в Python3.2, обработать его, а затем открыть это в Python2.7. Однако есть некоторая часть данных, против которой возражает Python2.7, хотя на выборке данных он работает нормально, и мне было интересно, как выяснить, что идет не так.
Итак, в 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}}
Что (вероятно) здесь не так? Есть ли простой способ узнать, что в исходном (большом) наборе данных вызывает проблему?