<p>两种解决方案:</p>
<p>首先,如果您的json文件没有<code>null</code>或{<cd2>}布尔值,那么很酷的做法是使用可以处理这些逗号的<code>ast.literal_eval</code>读取输入,然后根据需要将dict作为json转储:</p>
<pre><code>d = ast.literal_eval(txt)
print(json.dumps(d,indent=4))
</code></pre>
<p>如果不能,可以使用正则表达式删除换行符之前的逗号,如果下一行以空格+右大括号/方括号开头:</p>
^{pr2}$
<p>下面是一个完整的片段,其中包含2种方法,并提供了您输入的精简版本:</p>
<pre><code>import ast,json
txt = """{
"sessionTimeout":"3600.0",
"serverVersion":"LK_LK-NL-7_188-176-419",
"worldDawn":"2018-10-09 06:00:00 Etc/GMT",
"Data":{
"Player":[
{
"nick":"Player11226400",
"rank":"561",
"entityName":"Player",
},
{
"nick":"Player11230580",
"rank":"2081",
"entityName":"Player",
},
{
"nick":"Player11291581",
"rank":"2081",
"entityName":"Player",
}
]
}
}"""
print("ast literal eval:")
d = ast.literal_eval(txt)
print(json.dumps(d,indent=4))
import re
print("regex:")
d = json.loads(re.sub(",(\n\s+[\}\]])",r"\1",txt))
print(json.dumps(d,indent=4))
</code></pre>
<p>两个方法都成功地解析了输入文件。只要没有空指针和布尔值,第一种方法就可以完美地工作,第二种方法在某些模糊的格式化情况下可能会失败。万一运气不好,你可以在两者之间做些什么。在</p>