私は、このユーザーが行っていたことと非常に似たようなことをしています: 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}'