Подтвердить что ты не робот

Что такое u, когда я использую json.loads?

Я пишу Python script для разбора информации JSON из API Soundcloud, и мне просто интересно, что такое "u", когда я использую json.loads(val) и как хранить информацию JSON для объект без u?

то есть. почему в этом есть u:

>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
[u'foo', {u'bar': [u'baz', None, 1.0, 2]}]

Смотрите раздел "Декодирование JSON", чтобы понять, что я имею в виду далее:

http://docs.python.org/library/json.html

Спасибо!

4b9b3361

Ответ 2

u' указывается, что предполагается создать строку Unicode.

Это отстой, что json.dump преобразует строки в строки unicode и не оставляет никаких следов этого, потому что тогда json.load не может преобразовать обратно.

Чтобы преобразовать в строковые объекты, используйте PyYAML:

>>> import yaml
>>> yaml.load('["foo", {"bar":["baz", null, 1.0, 2]}]')
>>> ['foo', {'bar': ['baz', None, 1.0, 2]}]

Но осторожно! Если по какой-то причине вы json.dump задали объект, содержащий строки объектов и строки Unicode, yaml будет загружать все как строки объектов (хотя это действительно ошибка json.dump)