以特定形式转储JSON内容

2024-09-28 05:15:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要使用以下格式的Python scit文件实际创建一个Windows INI:

AGENTIP = 1.2.3.4,
VARFILE = C:\Users\output\temp.out
INFOFILE= C:\Users\output\info.out
SYNTEST = Run:Level1/Get
CMDMODE = RUNTESTSUITE

下面是我的Python代码,我将数据放在JSON字符串中,然后将内容转储到一个文件中:

def change_test_details(self, ver, level, grp):
    data = {"AGENTIP" : "1.2.3.4", "VARFILE" : "C:\\Users\\output\\temp.out", "INFOFILE" : "C:\\Users\\output\\info.out", "SYNTEST" :"Run:Level1/Get", "CMDMODE" :"RUNTESTSUITE"}
    data["SYNTEST"] = ver + ":" + level + "/" + grp
    with open("a.txt", 'w') as outfile:
        json.dump(data, outfile,indent=2)

使用以下参数调用方法时:

“BETA”“Level5”“集”

如果文件是

{
  "AGENTIP": "1.2.3.4",
  "VARFILE": "C:\\Users\\output\\temp.out",
  "INFOFILE": "C:\\Users\\output\\info.out",
  "SYNTEST": "\"BETA\":\"Level5\"/\"Set\"",
  "CMDMODE": "RUNTESTSUITE"
}

有{..}大括号和额外的双引号以及“\”和SYNTEST的预期值应该是BETA:Level5/Set

如何将JSON字符串更改为所需格式


Tags: 文件infooutputdataoutuserstempbeta
1条回答
网友
1楼 · 发布于 2024-09-28 05:15:35

json.dump()将对象打印为json格式的字符串。因此,当您将其转储到outfile时,您会在文件中得到一个json字符串,这就是它的行为方式

您需要的是遍历这些项,并根据所需的格式打印它们

def change_test_details(ver, level, grp):
    data = {"AGENTIP" : "1.2.3.4", "VARFILE" : "C:\\Users\\output\\temp.out", "INFOFILE" : "C:\\Users\\output\\info.out", "SYNTEST" :"Run:Level1/Get", "CMDMODE" :"RUNTESTSUITE"}
    data["SYNTEST"] = ver + ":" + level + "/" + grp
    with open("a.txt", 'w') as outfile:
        for k, v in data.items():
            outfile.write(f'{k} = {v}\n')

change_test_details("BETA", "Level5","Set")

运行此命令时,a.txt类似于:

AGENTIP = 1.2.3.4
VARFILE = C:\Users\output\temp.out
INFOFILE = C:\Users\output\info.out
SYNTEST = BETA:Level5/Set
CMDMODE = RUNTESTSUITE

相关问题 更多 >

    热门问题