基本上,我在这里遇到的是尝试在Python中定义函数时,我无法使用在运行主函数之前设置的变量。听起来模棱两可,但是一旦看到代码,它就会变得有意义。
它在未定义为函数的情况下有效,但这无济于事,因为我需要将其用作tkinter gui中的函数。
如果在运行exportJSON函数之前导入csv和json,我希望代码能够运行。我收到错误消息:NameError:以这种方式执行时未定义名称'csvFilePath'。
def importCSV():
csvFilePath = filedialog.askopenfilename()
def importJSON():
jsonFilePath = filedialog.askopenfilename()
#Change fieldname
def exportJSON():
data = {}
with open(csvFilePath, 'r') as csvFile:
csvReader = csv.DictReader(csvFile)
for csvRow in csvReader:
ProfileName = csvRow["ProfileName"]
data[ProfileName] = csvRow
with open(jsonFilePath, 'w') as jsonFile:
jsonFile.write(json.dumps(data))
答案 0 :(得分:0)
通过在定义变量名之前简单地将global
放在变量名之前,解决了该特定示例。例如:
def importCSV():
global csvFilePath
csvFilePath = filedialog.askopenfilename()
def importJSON():
global jsonFilePath
jsonFilePath = filedialog.askopenfilename()