Python认为json是局部变量

时间:2018-07-05 19:59:33

标签: json variables scope local

应该使用此函数来操作存储为文件的字典中的值。我正在

  

“分配前已引用本地变量'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(文件名)     全球总数     scoref = open(filename,“ r”)#记录并报告个人的回复     sf = json.loads(scoref.read())#Json帮助字符串和整数写入和读取文件。     键= str(分数)     如果键入sf:         sf [key] + = 1     其他:         sf [key] = 1 #etc。

2 个答案:

答案 0 :(得分:0)

您要在此处为​​json赋值

json = json.dumps(dictio)

更改变量名称

答案 1 :(得分:0)

这是因为您正在遮盖json模块声明变量的同名变量。只是不要这样做,请获得在范围内唯一的名称。