【发布时间】:2020-05-08 15:56:01
【问题描述】:
我使用邮递员从 api 获取网址,以便查看某些标题。 响应保存为 .json 文件。
我的 response.json 文件的 sn-p 如下所示:
{
"apiUrl":"https://api.ft.com/example/83example74-3c9b-11ea-a01a-example547046735",
"title": {
"title": "Example title example title example title"
},
"lifecycle": {
"initialPublishDateTime":"2020-01-21T22:54:57Z",
"lastPublishDateTime":"2020-01-21T23:38:19Z"
},
"location":{
"uri":"https://www.ft.com/exampleurl/83example74-3c9b-11ea-a01a-example547046735"
},
"summary": "...",
# ............(this continues for all different titles I found)
}
由于我想查看文章,因此我想生成所有 url 的列表。我对 apiUrl 不感兴趣,而只对 uri 感兴趣。
我当前的python文件是这样的
with open ("My path to file/response.json") as file:
for line in file:
urls = re.findall('https://(?:[-\www.]|(?:%[\da-fA-F]{2}))+', line)
print(urls)
这给了我以下输出:
['https://api.ft.com', 'https://www.ft.com', 'https://api.ft.com', 'https://www.ft.com',........
但是,我希望能够看到 www.ft.com 的整个网址(所以不是 api.ft.com 网址,因为我对这些不感兴趣)。 例如,我希望我的程序提取如下内容:https://www.ft.com/thisisanexampleurl/83example74-3c9b-11ea-a01a-example547046735
我希望程序对整个响应文件执行此操作
有人知道怎么做吗?
所有帮助将不胜感激。 雷蒙德
【问题讨论】:
-
您能否提供更好的数据 sn-p?如果 JSON 格式正确,使用 json.load 而不是正则表达式可能会好得多。
-
这是一个一级深度的 JSON 吗?所需的 URL 是否始终存储在
uri键下? -
想要的 url 总是跟在 uri 键之后
标签: python json url postman extract