Мне нужно вытащить определенную строку из пути URL - PullRequest
0 голосов
/ 01 марта 2019

Я извлекаю следующий URL из JSON в Интернете.

Пример строки, с которой я работаю: http://icons.wxug.com/i/c/k/nt_cloudy.gif

Мне нужно получить только "nt_cloudy" извыше, чтобы записать img (уже сохраненный) на экран epaper для приложения погоды.Я пробовал re.split (), но получаю только полную строку обратно, независимо от того, на что я делю.

Все остальное работает, если я вручную ввожу имя файла, я могу отобразить изображение, однако погодаусловия меняются, поэтому мне нужно вытащить имя из JSON.Опять же, это только поиск конкретной строки в полной строке, на которой я застрял.

imgurl = weatherinfo['current_observation']['icon_url'] # http://icons.wxug.com/i/c/k/nt_cloudy.gif
img_condition = re.split('\/ |\// |.', imgurl)
image_1 = "/home/pi/epaper/python2/icons/" + img_condition + ".bmp"

Ответы [ 3 ]

0 голосов
/ 01 марта 2019

Вы можете использовать ниже регулярное выражение:

let regex = /(\w+)\.gif/g.exec("http://icons.wxug.com/i/c/k/nt_cloudy.gif")
if(regex != null && regex.length == 2)
    console.log(regex[1]);

Найти ссылку здесь .

0 голосов
/ 01 марта 2019

Пожалуйста, отметьте это,

import re

imgurl = weatherinfo['current_observation']['icon_url'] # http://icons.wxug.com/i/c/k/nt_cloudy.gif
img_condition = re.split('\/', imgurl)[-1]
image_1 = "/home/pi/epaper/python2/icons/" + img_condition[:-4] + ".bmp"
0 голосов
/ 01 марта 2019

Если вы уверены, что путь всегда будет заканчиваться именем файла изображения и после него не будет строки запроса (например, nt_cloudy.gif?foo=bar&x=y&...), вы можете просто использовать функции пути к файловой системе из стандартного модуля Python os.path..

https://docs.python.org/3/library/os.path.html

#!/usr/bin/env python
import os

URL = 'http://icons.wxug.com/i/c/k/nt_cloudy.gif'
FILENAME = os.path.basename(URL)

Если вы пытаетесь декодировать URL-адрес, который может содержать строку запроса, вы можете использовать модуль urllib.parse.

https://docs.python.org/3/library/urllib.parse.html#module-urllib.parse

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

...