這裏的問題是缺乏嵌套的對象,而不是null
關鍵的。您需要找到一種方法來修復該語法或自己解析它。
如果我們做出關於語法的幾個假設,你應該能夠使用正則表達式解碼之前解決JSON數據:
import re
from itertools import count
def _gen_id(match, count=count()):
return '{1}"generated_id_{0}":{2}'.format(next(count), *match.groups())
_no_key = re.compile(r'(,)({)')
def fix_json(json_data):
return _no_key.sub(_gen_id, json_data)
這假定任何,{
組合指示的位置一個丟失的鍵,並生成一個插入那裏。這是一個合理的假設,但如果你有正好那個序列的字符串數據可能會破壞事情。
演示:
>>> json_data = '{"id": null,{"version": "1.1","result": "9QtirjtH9b","error": null}}'
>>> fix_json(json_data)
'{"id": null,"generated_id_0":{"version": "1.1","result": "9QtirjtH9b","error": null}}'
>>> json.loads(fix_json(json_data))
{u'id': None, u'generated_id_1': {u'version': u'1.1', u'result': u'9QtirjtH9b', u'error': None}}
謝謝,現在有一些修復它的作品! – Phidelux