2015-01-28 3 views
0

Я просто фиксирую скрипт 2.7 до 3.5 и сталкивался с некоторыми проблемами декодирования/кодирования.python 2.7 до 3.3 строки кодирования/декодирования изменения

id = entry.attrib['{http://www.opengis.net/gml/3.2}id'] 
code = id.split('-')[2] 
doc['code'] = (code + u"-area").decode('utf-8') 

выше - версия 2.7, которая читает материал из XML-файла. Каков правильный способ сделать это в 3.3, поскольку некоторые вещи кодирования были изменены, а объект «str» больше не имеет атрибута «decode».

Я видел это также: .encode('UTF-8').decode('utf-8') это имеет какой-либо эффект?

+1

https://docs.python.org/3/howto/pyporting.html#text-versus-binary -data. Исходный документ должен быть правильно проанализирован, если это возможно. – Caramiriel

ответ

0

Python 3.X уже содержит символы Юникода, поэтому я думаю, что вам не нужно использовать .decode('utf-8'). В данный момент вам нужно хранить в каком-то/где-то ваш doc['code'], то вы можете использовать .encode('utf-8'), а затем получить его через .decode('utf-8')

Смежные вопросы