不带反斜杠的Python JSON编写 列表项

不带反斜杠的Python JSON编写 列表项,python,json,dictionary,backslash,Python,Json,Dictionary,Backslash,我有一个包含2个文件的“quad”文件夹(oracle_1.sql和oracle_2.sql) 以及一个带有config.json文件的“config”文件夹 我的代码如下: import os, json quadversion = ("develop-62") x = os.listdir("quad/") i=0 listscripts = [] while (len(x)) > i: script = ('{"ignoreErrors": False, "script":

我有一个包含2个文件的“quad”文件夹(oracle_1.sql和oracle_2.sql) 以及一个带有config.json文件的“config”文件夹

我的代码如下:

import os, json
quadversion = ("develop-62")
x = os.listdir("quad/")
i=0
listscripts = []

while (len(x)) > i:
    script = ('{"ignoreErrors": False, "script": "quad/lma/dba-tests/'+(quadversion)+'/scripts/'+(x[i])+'"}')
    i+=1
    listscripts.append(script)

with open('config/config.json', 'r+') as f:
    data = json.load(f)

    tmp = data['containers']['runtimeEnvironment']['data']['properties']['sqlScripts']['value']
    data['containers']['runtimeEnvironment']['data']['properties']['sqlScripts']['value'] = listscripts

    f.seek(0)
    f.write(json.dumps(data, indent = 4, sort_keys=True))
    f.truncate()
它将返回JSON文件上的反斜杠-名为“value”的键:

结果可能是这个被称为“值”的键:


原因是
listscript
变量是
字符串的列表,而不是字典的列表。
您的
脚本必须是字典:

while (len(x)) > i:
    script = {"ignoreErrors": False, "script": "quad/lma/dba-tests/" + quadversion + "/scripts/" + x[i]}
    i+=1
    listscripts.append(script)

原因是
listscript
变量是
字符串的列表,而不是字典的列表。
您的
脚本必须是字典:

while (len(x)) > i:
    script = {"ignoreErrors": False, "script": "quad/lma/dba-tests/" + quadversion + "/scripts/" + x[i]}
    i+=1
    listscripts.append(script)

您得到的是字符串列表,而不是字典列表(将被序列化为对象)。将
script=({“ignoreErrors”:False,“script”:“quad/lma/dba tests/'+(quadversion)+'/scripts/'+(x[i])+“}”)
替换为
script=({“ignoreErrors”:False,“script”:“quad/lma/dba tests/'+(quadversion)+'+(quadversion)+'+(x[i])+”)“})
应该没问题。非常感谢,它很有魅力!!!您得到的是字符串列表,而不是字典列表(将被序列化为对象)。将
script=({“ignoreErrors”:False,“script”:“quad/lma/dba tests/'+(quadversion)+'/scripts/'+(x[i])+“}”)
替换为
script=({“ignoreErrors”:False,“script”:“quad/lma/dba tests/'+(quadversion)+'+(quadversion)+'+(x[i])+”)“})
应该没问题。非常感谢,它很有魅力!!!投了赞成票,但一定要修正你的引号:)你只编辑了他那行的一半,或者什么的。事实上,我修正了:)投了赞成票,但一定要修正你的引号:)你只编辑了他那行的一半,或者什么的。事实上,我修正了:)
while (len(x)) > i:
    script = {"ignoreErrors": False, "script": "quad/lma/dba-tests/" + quadversion + "/scripts/" + x[i]}
    i+=1
    listscripts.append(script)