我需要从 URL 路径中提取特定字符串
I need to pull a specific string from a URL path
我正在从互联网上的 JSON 中提取以下 URL。
我正在使用的字符串示例:
http://icons.wxug.com/i/c/k/nt_cloudy.gif
我只需要从上面获取 "nt_cloudy",以便将 img(已存储)写入天气应用程序的电子纸显示器。我试过 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"
如果您确信路径将始终以图像文件名结尾,并且后面不会有查询字符串(例如,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
我不会详细说明为什么您的正则表达式没有按您预期的方式工作,因为老实说,手工制作的正则表达式对于这个用例来说有点过分了。
您可以使用以下正则表达式:
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]);
找到参考文献here。
请检查这个,
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"
我正在从互联网上的 JSON 中提取以下 URL。
我正在使用的字符串示例: http://icons.wxug.com/i/c/k/nt_cloudy.gif
我只需要从上面获取 "nt_cloudy",以便将 img(已存储)写入天气应用程序的电子纸显示器。我试过 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"
如果您确信路径将始终以图像文件名结尾,并且后面不会有查询字符串(例如,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
我不会详细说明为什么您的正则表达式没有按您预期的方式工作,因为老实说,手工制作的正则表达式对于这个用例来说有点过分了。
您可以使用以下正则表达式:
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]);
找到参考文献here。
请检查这个,
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"