gpt4 book ai didi

python - 使用协议(protocol) 2 : Python3->2 data 进行 pickle

转载 作者:太空狗 更新时间:2023-10-30 00:15:20 25 4
gpt4 key购买 nike

我正在尝试对在 Python3.2 中创建的数据数组进行数据处理,对其进行 pickle,然后在 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}}

这里(可能)出了什么问题?有什么简单的方法可以查看原始(大型)数据集中的问题是什么引起的吗?

最佳答案

Pickle 并不像看起来那么好。安全漏洞和许多类似的问题。

一个更好的主意是创建您自己的保存格式,例如使用 json。

关于python - 使用协议(protocol) 2 : Python3->2 data 进行 pickle ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9448127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com