JSON and Firefox sessionstore.js

Steven D'Aprano steven at REMOVE.THIS.cybersource.com.au
Thu Apr 23 05:31:23 CEST 2009

On Thu, 23 Apr 2009 05:08:35 +0100, I V wrote:

> For something with at least a vague air of credibility to it, somebody
> who appears to be a Mozilla developer comments on their bug tracker,
> that sessionstore.js isn't "pure JSON" (though he only identifies the
> parantheses, which are much easier to fix, as being a problem):
> https://bugzilla.mozilla.org/show_bug.cgi?id=407110#c2

Ah, fantastic! Or rather, damn, I was hoping it was proper JSON and not 
some sort of bizarre mutant.

For what it's worth, removing the leading/trailing parentheses gives a 
different error:

>>> import io
>>> import json
>>> filename = '.mozilla/firefox/2z5po7dx.default/sessionstore.js'
>>> text = open(filename).read()
>>> text = io.StringIO(text[1:-1])
>>> x = json.load(text)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.0/json/__init__.py", line 267, in load
    parse_constant=parse_constant, **kw)
  File "/usr/local/lib/python3.0/json/__init__.py", line 307, in loads
    return _default_decoder.decode(s)
  File "/usr/local/lib/python3.0/json/decoder.py", line 323, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/local/lib/python3.0/json/decoder.py", line 340, in raw_decode
    obj, end = next(self._scanner.iterscan(s, **kw))
  File "/usr/local/lib/python3.0/json/scanner.py", line 55, in iterscan
    rval, next_pos = action(m, context)
  File "/usr/local/lib/python3.0/json/decoder.py", line 175, in JSONObject
    raise ValueError(errmsg("Expecting property name", s, end))
ValueError: Expecting property name: line 1 column 1 (char 1)

Presumably that's the error you get when you don't quote your property 
names properly.


More information about the Python-list mailing list