<p>我看你可以用这个走两条路</p>
<ul>
<li>首先尝试用<a href="https://docs.python.org/3/library/json.html?highlight=json%20parse#json.loads" rel="nofollow noreferrer">^{<cd1>}</a>反序列化它,并遍历每个属性并替换所有格式错误的键,然后再将其馈送到棉花糖,或者</li>
<li>使用<a href="https://docs.python.org/3/library/json.html?highlight=json%20parse#json.JSONDecoder" rel="nofollow noreferrer">^{<cd2>}</a>类并滚动您自己的<code>object_hook</code>函数。然后在将其喂入棉花糖之前调用<a href="https://docs.python.org/3/library/json.html?highlight=json%20parse#json.JSONDecoder.decode" rel="nofollow noreferrer">^{<cd4>}</a>函数</李>
</ul>
<p>我对后者进行了扩展(我认为后者更合适)</p>
<pre><code>from json import loads, JSONDecoder
s = """{
"obj1": 123,
"list": [
{"example2": 42},
{"sera:blah": false},
{"object:3": {"nest:ed": "obj"}}
]
}"""
data = loads(s)
print(data)
def obj_transform(obj):
for key in obj.keys(): # Iterate through obj
if ':' in key:
obj[key.replace(':', '_')] = obj.pop(key)
return obj
decoder = JSONDecoder(object_hook=obj_transform)
print(decoder.decode(s))
</code></pre>
<p>此操作的结果将打印:</p>
<blockquote>
<p>{'obj1': 123, 'list': [{'example2': 42}, {'sera:blah': False}, {'object:3': {'nest:ed': 'obj'}}]}<br/>
{'obj1': 123, 'list': [{'example2': 42}, {'sera_blah': False}, {'object_3': {'nest_ed': 'obj'}}]}</p>
</blockquote>
<p>这看起来像是你在寻找的,对你输入的棉花糖进行消毒</p>