Найти - Пользователи
Полная версия: utf8-escaped в unicode-строке
Начало » Python для экспертов » utf8-escaped в unicode-строке
1 2 3 4
skavans
4kpt, версия питона какая у Вас? различия у нас с Вами в том, что у меня
>>> str_from_file = '{"url": "http://yandex.ru/yandsearch?text=%D0%BC%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&lr=213"}'
>>> json_obj = json.loads(str_from_file)
>>> json_obj
{u'url': u'http://yandex.ru/yandsearch?text=%D0%BC%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&lr=213'}
в словарь попадают Unicode-строки, а у вас - обычные
4kpt
Фига себе новости. У меня 2.7. Тут скорое всего ось виновата. У меня драная ХР. У Вас?
skavans
python 2.7.3, Mac OS X 10.8.4
wbt
Python 2.7.5+ (default, Aug  4 2013, 10:07:17) 
[GCC 4.8.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> str_from_file = '{"url": "http://yandex.ru/yandsearch?text=%D0%BC%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&lr=213"}'
>>> json_obj = json.loads(str_from_file)
>>> json_obj
{u'url': u'http://yandex.ru/yandsearch?text=%D0%BC%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&lr=213'}

Debian Sid, x86_64
skavans
на винде, видать, по-другому работает, как бы это ни было странно..
4kpt
Смущает. Значит на хваленой кроссплатформенности можно начинать рисовать крест :)
PooH
4kpt
Смущает. Значит на хваленой кроссплатформенности можно начинать рисовать крест :)
Рано еще. Под рукой была только win7 там уникод на выходе. А ХР уже не жилец.
sp3
4kpt
мжт у тебя модуль json какой нибудь левый?
4kpt
sp3
Посмотрим. Ага… Версия: 2.0.9.
Сходил на трех разных машинах проверил. Результат однозначный. У меня возвращает строку.
Что у Вас возвращает?
sp3
win7
>>> str_from_file = '{"url": "http://yandex.ru/yandsearch?text=%D0%BC%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&lr=213"}'
... json.loads(str_from_file)
4: {u'url': u'http://yandex.ru/yandsearch?text=%D0%BC%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&lr=213'}
>>> json.__version__
5: '1.9'
>>> import sys
>>> sys.version
6: '2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)]'

>>> import json
... str_from_file = '{"url": "http://yandex.ru/yandsearch?text=%D0%BC%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&lr=213"}'
... json.loads(str_from_file)
0: {u'url': u'http://yandex.ru/yandsearch?text=%D0%BC%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&lr=213'}
>>> json.__version__
1: '2.0.9'
>>> import sys
... sys.version
2: '2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)]'


Вроде бы с хр тоже беда какая то была со строками. На 7 нормально, а на другой машине с хр возвращалась строка вместо юникода. Не помню в какой библиотеке.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB