3 回答

TA贡献1757条经验 获得超8个赞
我相信,如果您清理 HTML 标记,然后使用 NLTK 的句子标记器对段落进行标记,那么您应该很高兴。
from nltk.tokenize import sent_tokenize
import urllib.parse
import requests
import re
main_api = "https://api.tfl.gov.uk/AirQuality?"
idno = "1"
url = main_api + urllib.parse.urlencode({"$id": idno})
json_data = requests.get(main_api).json()
disclaimer = json_data['disclaimerText']
print("Disclaimer: " + disclaimer)
print()
# Clean out HTML tags
today_weather_str = re.sub(r'<.*?>', '', json_data['currentForecast'][0]['forecastText'])
# Get the first two sentences out of the list
today_weather = ' '.join(sent_tokenize(today_weather_str)[:2])
print("Today's forecast: {}".format(today_weather))

TA贡献1719条经验 获得超6个赞
如果您要编写一个没有为每个数据集显式编码的脚本,那么您需要找到某种模式,如果该模式是您想要的字符串始终是前两行,那么您可以使用for循环:
data = [line for line in your_variable_here]
data = data[:2]
如果似乎有关于简化预测的模式,您也可以尝试使用正则表达式。
但是,如果没有更多关于数据集是什么样子的信息,我认为这是我能想到的最好的。

TA贡献1827条经验 获得超9个赞
这些“随机符号”
<br/>
是一个 HTML 编码
<br/>
或 HTML 中的新行,因此看起来像是一个可靠的拆分方法:
lines = today_weather.split('<br/>')
我认为可以合理地假设第一行就是您所追求的:
short_forecast = lines[0]
时间会证明这是否正确,但您可以轻松调整以包含更多或更少。
添加回答
举报