我正在做与该用户所做的非常相似的事情:尝试将 javascript 对象声明加载到 python 字典中。但是,与该用户不同的是,属性名称没有用引号引起来。
>>> simplejson.loads('{num1: 1383241561141, num2: 1000}')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/lalalal/site-packages/simplejson/__init__.py", line 385, in loads
return _default_decoder.decode(s)
File "/Users/lalalal/site-packages/simplejson/decoder.py", line 402, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/Users/lalalal/site-packages/simplejson/decoder.py", line 418, in raw_decode
obj, end = self.scan_once(s, idx)
simplejson.decoder.JSONDecodeError: Expecting property name: line 1 column 1 (char 1)
如果我有正确的 JSON 表示法,那就太好了:
>>> simplejson.loads('{"num1": 1383241561141, "num2": 1000}')
{'num1': 1383241561141, 'num2': 1000}
但是,我没有。我该如何解决这个问题?也许它归结为像正则表达式这样简单的东西?
编辑: Martijn 写的这个正则表达式让我走到了一半,如果我在一些示例数据中出现的大括号后面有尾随空格,它就不起作用,例如{ num1: 1383241561141, num2: 1000}'