我在试图弄清楚时遇到了一些困难,使用 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 无效。你有什么建议,首先如何去掉最后一个逗号,其次如何验证字符串并确保它的格式正确?
您可以将其解析为 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)
| 归档时间: |
|
| 查看次数: |
2251 次 |
| 最近记录: |