2016-01-18 3 views
-3

У меня есть следующая строка «158.8 ± 0.7», которая извлекается из чужого html через beautifulsoup. Я хотел бы разбить его на числа и значения ошибок как плавающие. Тем не менее, я не могу разбить функцию split на split.Python split string on + - символ

Я пробовал:

num, err = "158.8 ± 0.7".split('±') 
num, err = "158.8 ± 0.7".split(u'U+00B1') 
num, err = "158.8 ± 0.7".split('±') 

Ни одна из этих работ, хотя. Есть идеи?

Я использую Python 2.7

Update

Я добавил # -*- coding: utf-8 -*- в качестве первой линии моего кода, и теперь я получаю ошибку UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 1: ordinal not in range(128). Какие-нибудь дальнейшие советы?

+0

Какую версию python вы используете? –

+3

Когда я вставляю вашу первую строку в интерпретатор, она работает как на Python 2, так и на 3. – timgeb

+1

Может кто-нибудь объяснить, почему этот вопрос зашел в голосование? Я понимаю, что это работает для других людей, но это не значит, что это не проблема для меня. – ericksonla

ответ

0

В верхней части файла, сделайте следующее:

# -*- coding: utf-8 -*- 

Это позволит не-ASCII символы, которые будут рассмотрены.

, а затем использовать модуль повторно для разделения,

import re 
re.split('\W±', "158.8 ± 0.7") 
0

поставил

# -*- coding: utf-8 -*- 

при запуске файла, чтобы установить кодировку Юникод. Первый пример, который вы опубликовали, будет работать нормально.