Domanda

Hello and thanks for coming. I have a problem, writing JSON dict filled with data from the GUI: after execution of this script, i got an empty .json file, even if it was filled with something. Googled without any applicable result.

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)

After completing the .json part of the script at IDLE, i got an empty file again, though calling variables test_conf_vocab and test_conf_file_w separately works fine. I know that i'm somehow messed up with json.dump(), i just can't see or Google any decent mistakes of my own.

È stato utile?

Soluzione

You didn't close the test_conf_file_w file object properly. Next time consider using with when working with files.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top