此函数用于操作存储为文件的字典中的值。我得到了
“赋值前引用的局部变量'json‘”
在第四行,"dictio =json.loads()“。
我已经导入了json,实际上下面的函数运行得很好,执行几乎相同的任务。与后面的函数不同,这个函数还抛出了一个空队列错误,尽管我并没有故意请求多线程。
def updateTally(lefty): #Tally records responses to each question
global num, total, thisQ
rf = open("20QTally.json", "r")
dictio = json.loads(rf.read())
rf.close()
dictio[str(0)] += 1
total = dictio[str(0)]
if lefty == 1:
dictio[str(num)] +=1
thisQ = dictio[str(num)]
json = json.dumps(dictio)
wf = open("20QTally.json", "w")
wf.write(json)
wf.close()
def record_score( score ):#打开、读取、写入和关闭分数文件,20QScores.txt (文件名)全局总得分=open(文件名,"r") #记录和报告个人的响应sf = json.loads(scoref.read()) # Json帮助字符串和整数写入和读取文件。key =str(分数)如果密钥在sf中: sfkey += 1否则: sfkey =1#,依此类推。
发布于 2018-07-06 04:09:05
您正尝试在此处为json
赋值
json = json.dumps(dictio)
更改变量名
发布于 2018-07-06 04:17:04
这是因为您正在跟踪使用相同名称声明变量的json
模块。不要这样做,获取一些在作用域中唯一的名称。
https://stackoverflow.com/questions/51199002
复制相似问题