Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 27, 2013 12:30:52

skavans
Зарегистрирован: 2012-11-13
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

utf8-escaped в unicode-строке

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-строки, а у вас - обычные

Офлайн

#2 Авг. 27, 2013 12:32:22

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

utf8-escaped в unicode-строке

Фига себе новости. У меня 2.7. Тут скорое всего ось виновата. У меня драная ХР. У Вас?



Офлайн

#3 Авг. 27, 2013 12:33:52

skavans
Зарегистрирован: 2012-11-13
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

utf8-escaped в unicode-строке

python 2.7.3, Mac OS X 10.8.4

Офлайн

#4 Авг. 27, 2013 12:35:08

wbt
Зарегистрирован: 2013-08-13
Сообщения: 143
Репутация: +  6  -
Профиль   Отправить e-mail  

utf8-escaped в unicode-строке

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



Бейсик - не порок, Гвидо - не пророк

Отредактировано wbt (Авг. 27, 2013 12:36:14)

Офлайн

#5 Авг. 27, 2013 12:35:48

skavans
Зарегистрирован: 2012-11-13
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

utf8-escaped в unicode-строке

на винде, видать, по-другому работает, как бы это ни было странно..

Офлайн

#6 Авг. 27, 2013 12:36:41

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

utf8-escaped в unicode-строке

Смущает. Значит на хваленой кроссплатформенности можно начинать рисовать крест :)



Отредактировано 4kpt (Авг. 27, 2013 12:37:54)

Офлайн

#7 Авг. 28, 2013 05:07:29

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

utf8-escaped в unicode-строке

4kpt
Смущает. Значит на хваленой кроссплатформенности можно начинать рисовать крест :)
Рано еще. Под рукой была только win7 там уникод на выходе. А ХР уже не жилец.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#8 Авг. 28, 2013 09:31:29

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

utf8-escaped в unicode-строке

4kpt
мжт у тебя модуль json какой нибудь левый?



Офлайн

#9 Авг. 28, 2013 10:20:54

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

utf8-escaped в unicode-строке

sp3
Посмотрим. Ага… Версия: 2.0.9.
Сходил на трех разных машинах проверил. Результат однозначный. У меня возвращает строку.
Что у Вас возвращает?



Отредактировано 4kpt (Авг. 28, 2013 10:22:27)

Офлайн

#10 Авг. 28, 2013 14:11:15

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

utf8-escaped в unicode-строке

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 нормально, а на другой машине с хр возвращалась строка вместо юникода. Не помню в какой библиотеке.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version