2015-10-28 4 views
1

Я использую модуль pyowm для очистки данных погоды от OpenWeatherMap. Он отлично работает, но когда я прошу о погоде, он выводит его в этом форматеКак изолировать определенную часть строки и распечатать ее?

<pyowm.webapi25.weather.Weather - reference time=2015-10-28 18:01:16+00, status=rain> 

находится там, к примеру, захватить слова «дождь» или «облачный», присваивая буквы между «= "и закрытие тега (>) новой переменной, а затем печать этой новой переменной?

ответ

0
import re 
x="<pyowm.webapi25.weather.Weather - reference time=2015-10-28 18:01:16+00, status=rain>" 
print re.findall(r"(?<==)[^=]*(?=>)",x) 

Вы можете использовать re с lookbehind для этого.

0

Вы можете найти индекс последнего вхождения «=» и «>» по телефону:

lastEqualIndex = weatherString.rfind("=") 
lastLTIndex = weatherString.rfind(">") 

Тогда то, что вы хотите, это просто:

weather = weatherString[lastEqualIndex + 1, lastLTIndex] 
2

Вам не нужно для анализа строки, чтобы получить нужные данные. У вас есть объект типа pyowm.webapi25.weather.Weather. Вы можете получить доступ к его полям, как так: (., Где weather_obj это имя вашего объекта)

print weather_obj.get_reference_time() 
print weather_obj.get_status() 

УРОВЕНЬ documentation для получения дополнительной информации.

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