This question already has an answer here:
I've been writing a Python script to parse JSON information from the Soundcloud API, and I was just wondering what the "u"'s are when I use json.loads( val ) and how to store the JSON information to an object without the u's?
i.e. why are there u's in this:
>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
[u'foo', {u'bar': [u'baz', None, 1.0, 2]}]
See the "Decoding JSON" section here to understand what I mean further:
http://docs.python.org/library/json.html
Thank you!
the
u'
s are there to indicate that a Unicode string is supposed to be created.It sucks that
json.dump
converts strings to unicode strings and leaves no trace of having done that, because thenjson.load
can't convert back.To convert to string objects, use PyYAML:
But careful! If for some reason you
json.dump
ed an object containing object strings and unicode strings,yaml
will load everything as object strings (though that'sjson.dump
's fault really)Unicode strings. See the Python Tutorial.