首页 > 解决方案 > 全局布尔值的代码检查返回一个未命名的变量错误

问题描述

这是我得到的错误。我知道我可能不应该使用全局变量。我按init的顺序调用函数,然后adddata:

Traceback (most recent call last):
  File "main.py", line 5, in <module>
    adddata("testing", "1, 2, 3")
  File "/home/runner/EasyJSON/func.py", line 38, in adddata
    if(firsttime == True):
UnboundLocalError: local variable 'firsttime' referenced before assignment

这是返回错误的代码:

def init(*filename):
    global firsttime
    firsttime = True
    global file
    file = ""
    global undesirablechars
    undesirablechars = ["(", ")", "'", ","]
    for element in filename:
        if element == undesirablechars:
            pass
        else:
            file = element

def adddata(key, value):
    keyinfile = ""
    valueinfile = ""
    for element in key:
        if element == undesirablechars:
            pass
        else:
            keyinfile += element
    for element in value:
        if element == undesirablechars:
            pass
        else:
            valueinfile += element
        with open(file, 'w') as writefile:
            data = {keyinfile: valueinfile}
            if(firsttime == True):
                json.dump(data, writefile)
                firsttime = False
            else:
                adddatatofile = json.load(writefile)
                adddatatofile.update(data)
                writefile.seek(0)
                json.dump(adddatatofile, writefile)

这是在 Python 3.8.7 上。这是我正在努力使使用 json 更容易的事情。

标签: pythonjson

解决方案


推荐阅读