您好,感谢您的光临。 我有一个问题,编写充满了来自GUI的数据的JSON dict:在执行这个脚本之后,我得到了一个空的.json文件,即使它充满了某些东西。用Google搜索,没有任何适用的结果。
import easygui
import sys
from json import load, dump
from time import strftime, gmtime
def runTest():
# This is not really correct, but it works.
sys.argv = "Some Text"
date = strftime("%d.%m.%Y", gmtime()) + " " + str(int(strftime("%H", gmtime())) + 4) + strftime(":%M", gmtime())
test_case_area = easygui.buttonbox(
"Welcome to Automation Testing Environment, please, select the testing area name:", "Autotests gentle robot",
("GUI", "EPG", "LCN"))
stb = easygui.buttonbox("Please specify the STB type", "STB",
("something_1", "something_2", "something_3", "something_4", "something_5", "something_6", "something_7"))
platform = easygui.buttonbox("Please specify the {0} platform".format(stb), "{0} - Platform".format(stb),
("something_1", "something_2", "something_3", "something_4", "something_5"))
full_platform = stb + "_" + platform
msg = "Specify {0} parameters".format(full_platform)
title = "{0} version information".format(full_platform)
fieldNames = ["Software STB", "Hardware STB", "Module", "Software module", "Hardware module", "Tester", "Drive"]
fieldValues = easygui.multenterbox(msg, title, fieldNames)
test_conf_file_r = open("{0}:\\BBT2\\Configuration\\CP_PowerState.json".format(fieldValues[6]), "r")
test_conf_vocab = load(test_conf_file_r)
test_conf_vocab["platform"] = full_platform
test_conf_vocab["SW_version"] = fieldValues[0]
test_conf_vocab["HW_version"] = fieldValues[1]
test_conf_vocab["test_name"] = test_case_area
test_conf_vocab["disk"] = fieldValues[6]
test_conf_file_w = open("{0}:\\BBT2\\Configuration\\CP_PowerState.json".format(fieldValues[6]), "w")
dump(test_conf_vocab, test_conf_file_w)
在IDLE完成脚本的.json部分之后,我再次得到一个空文件,尽管调用变量test_conf_vocab
和test_conf_file_w
分别正常工作。我知道我在某种程度上与json.dump()
混淆了,我只是看不到或谷歌有任何不错的错误。
答案 0 :(得分:0)
您没有正确关闭test_conf_file_w
文件对象。下次在使用文件时请考虑使用with
。