Python - 删除字符串中最后一个对象的逗号以获得​​有效的 JSON

Cle*_*Dev 1 python regex json

我在试图弄清楚时遇到了一些困难,使用 Python 将字符串转换为有效 JSON 的最佳方法是什么。

基本上,我需要做的是从文件中读取一个字符串(已经以 JSON 格式给出),并将其转换为有效的 JSON。在我的情况下,唯一的问题是最后一个对象之后的“,”:

    {
        "InputTable" : 
        [
            {
                "ServerName":"serverOne",
                "To":"userOne", 
                "CC":"", 
                "TemplateName":"LinuxTemplate" 
            },
            {
                "ServerName":"serverTwo",
                "To":"userTwo", 
                "CC":"userFive", 
                "TemplateName":"LinuxTemplateWithCC" 

            }, << get rid of this comma

        ],
        "Params": 
        [   

            {"Col_0":"Server","Col_1":"User","Col_2":"Action"}
        ]
    }
Run Code Online (Sandbox Code Playgroud)

这是我读取文件的方式:

with open('/nfs/somePath/LinuxInput.JSON') as json_file:  
        try:
            jsonFormatInputTable = json.load(json_file)
        except:
            print ("Couldn't read JSON file, cancled operation.")
            return
Run Code Online (Sandbox Code Playgroud)

加载 JSON 文件失败,因为 JSON 无效。你有什么建议,首先如何去掉最后一个逗号,其次如何验证字符串并确保它的格式正确?

jnn*_*nnn 7

您可以将其解析为 YAML(其内联语法是更宽松的 JSON 超集):

import yaml
data = yaml.load(open(json_file))
Run Code Online (Sandbox Code Playgroud)

然后要获得有效的 JSON,您可以将对象转储回来:

import json
json.dumps(data)
Run Code Online (Sandbox Code Playgroud)