Ответ 1
Строки Unicode. См. Учебное пособие по Python.
В исходном коде Python литералы Unicode записываются как строки с префиксом "u" или "U": u'abcdefghijk.
Я пишу 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
Спасибо!
Строки Unicode. См. Учебное пособие по Python.
В исходном коде Python литералы Unicode записываются как строки с префиксом "u" или "U": u'abcdefghijk.
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
)