Вы можете использовать decode('unicode-escape')
для преобразования этих шестнадцатеричных последовательностей в символы.
>>> 'Hapoel_Be\\u0027er_Sheva_A\\u002eF\\u002eC\\u002e'.decode('unicode-escape')
u"Hapoel_Be'er_Sheva_A.F.C."
Редактировать: согласно вашему обновлению вопроса, у вас на самом деле есть комбинация шестнадцатеричных последовательностей и символов Юникода вне диапазона ASCII. Ошибка происходит из-за автоматического преобразования, которое пытается выполнить Python 2.7, когда вы пытаетесь использовать .decode()
в строке Unicode - decode
работает только со строками байтов, поэтому он пытается преобразовать из Unicode, используя кодек ASCII
. Python 3 не допустит этой ошибки.
Чтобы исправить это, вам нужно двойное преобразование: одно для преобразования не-ASCII символов в шестнадцатеричные последовательности, а другое для их обратного преобразования. Кодек 'unicode-escape'
удвоит обратную косую черту, поэтому их также необходимо исправить.
>>> print u'Hapoel_Be\\u0027er_Sheva_A\\u002eF\\u002eC\\u002e\u0160'.encode('unicode-escape').replace(b'\\\\u', b'\\u').decode('unicode-escape')
Hapoel_Be'er_Sheva_A.F.C.Š