使用Pickle保存字典 - 不工作

时间:2015-05-06 12:55:52

标签: python dictionary pickle

我目前正在制作游戏,最后,用户名称和体验点将保存在字典中的文件中。然后,我将调用该文件,并用他们的名字和各自的经验打印出玩家。

但是,出于某种原因,我得到的是“TypeError:必须是str,而不是字节”

我不知道如何解决这个问题,对我来说,我的代码看起来很准确。我该怎么做才能解决这个错误?

import pickle
game_winners_tracker=open("C://Users//Documents//GameWinners.txt",   "a")

finalname=str(x.character_name)
finalexp=str(x.exp)

print(finalname)
print(finalexp)

dumping={finalname:finalexp}
pickle.dump(dumping,game_winners_tracker)
game_winners_tracker.close

game_winners_tracker_second=open("C://Users//Documents//GameWinners.txt", "rb")
names_scores=pickle.load(game_winners_tracker_second)
print(names_scores)
print("The End!")

注意

当我在上面的代码中调用打印finalname和finalexp时(只是为了测试x.character_name和x.exp中的内容)我得到了我期望的内容 -

I.E它会打印出来:

Megan
130.5

我将两者都转换为字符串,为什么我会收到TypeError?

1 个答案:

答案 0 :(得分:2)

  

模式'r +','w +'和'a +'打开文件进行更新(读写);注意> 'w +'截断文件。将'b'附加到模式以打开二进制文件>模式,在区分二进制文件和文本文件的系统上;在系统上   没有这种区别,添加'b'没有效果。

来自Python API

所以试试:

import pickle
game_winners_tracker=open("C://Users//Documents//GameWinners.txt",   "ab")