我仅从对象序列化中获取此TypeError,即。没有涉及文件IO(与其他类似帖子不同)。一段代码是:
for itr in range(numiters):
#Sample from proposal distribution
d_star,Jratio,R_star,step = proposal(d_t,R_t,X,Y,alpha)
#Compute the new posterior value, if necessary
a_star = Pickle.dumps(d_star[:R_star+1])
print(type(a_star))
permsdic[a_star] = ...
另一个是:
for perm in permsdic.keys():
print(type(perm))
print(perm)
d_t = Pickle.loads(perm)
然而我得到了上述错误:d_t = Pickle.loads(perm) 第一个块中print语句的输出是:
class'bytes'
然而在第二个街区却是某种方式:
class'str'
B '\ X80 \ X03]●\ X00(K \ x01K \ x03K \ x05K \ x0cK \ x00e。'
这是在Python 3.6中(我正在尝试改编旧的Python库)
答案 0 :(得分:0)
我能够通过使用eval()函数使其工作,即以下工作
for perm in permsdic.keys():
print(type(perm))
print(perm)
d_t = Pickle.loads(eval(perm))
我仍然不明白为什么这是必要的......