json进程的语法错误?

时间:2014-04-02 19:57:22

标签: python json python-3.x

我一直在为游戏制作解决方案,为两个不同的玩家创建统计数据,然后保存到.txt,由于某种原因,我不知道sytax错误一直出现在这里;

Traceback (most recent call last):
  File "E:\CA2 solution.py", line 29, in <module>
    json.dump(char_data,open("character_data.dat","wb"))
  File "C:\Python33\lib\json\__init__.py", line 184, in dump
    fp.write(chunk)
TypeError: 'str' does not support the buffer interface  

我不确定有什么问题,但这里也是代码,

import random

char1=str(input('Please enter a name for character 1: '))
strh1=((random.randrange(1,4))//(random.randrange(1,12))+10)
skl1=((random.randrange(1,4))//(random.randrange(1,12))+10)
line = '%s has a strength value of %s and a skill value of %s'%(char1,strh1,skl1)


char2=str(input('Please enter a name for character 2: '))
strh2=((random.randrange(1,4))//(random.randrange(1,12))+10)
skl2=((random.randrange(1,4))//(random.randrange(1,12))+10)
line = '%s has a strength value of %s and a skill value of %s'%(char1,strh1,skl1)

char_data1 = {
  "name":char1,
   "STRENGTH":strh1,
    "SKILL":skl1, 
};

char_data2 = {
   "name":char2,
   "STRENGTH":strh2,
    "SKILL":skl2,

};
char_data = [char_data1,char_data2]

import json
json.dump(char_data,open("character_data.dat","wb"))


char_data_loaded = json.load(open("character_data.dat"))

我不知道出了什么问题,所以如果有人能做到,他们可以帮助我并指出并建议一种解决方法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

您正在为以二进制模式打开的文件提供字符串输入。 json.dumpchar_data序列化为文字here

中提到的字符串

w模式而不是wb打开文件,错误将被修复。