Следующий код:
s = s.replace(u"&", u"&")
вызывает ошибку в python:
SyntaxError: invalid syntax
удаление u до того, как " решит проблему, но этодолжен работать как есть?Я использую Python 3.1
u
"
u больше не используется в Python 3. Строковые литералы по умолчанию имеют юникод.См. Что нового в Python 3.0 .
Вы больше не можете использовать литералы u"..." для текста Unicode.Однако вы должны использовать литералы b"..." для двоичных данных.
u"..."
b"..."
На Python 3 строки в юникоде.Нет необходимости (и, как вы обнаружили, вы не можете) поставить u перед строковым литералом для обозначения юникода.
Вместо этого вы должны поставить b перед байтомбуквально означает, что не Unicode.
b
В Python3.3 + литерал Юникода снова действителен, см. Что нового в Python 3.3 :
Новые функции синтаксиса: Новый выход из выражения для делегирования генератора. Синтаксис u'unicode 'снова принят для объектов str.
Новые функции синтаксиса:
Новый выход из выражения для делегирования генератора. Синтаксис u'unicode 'снова принят для объектов str.