我正在尝试处理JSON文件。文件中包含的links
列表如下:
"links": [
{
"href": "https://specificURL/incidents",
"rel": "canonical"
},
{
"href": "https://specificURL/metadata-catalog/incidents",
"mediaType": "application/schema+json",
"rel": "describedby"
},
{
"href": "https://specificURL/incidents?limit=10&fromId=11",
"rel": "next"
},
{
"href": "https://specificURL/incidents-search-form",
"rel": "search-form"
},
{
"href": "https://specificURL/incidents?limit=10",
"rel": "self"
}
]
我通过遍历列表来拉动下一个链接,但我很好奇是否有更多“pythonic”方式。
工作代码:
for link in responseData['links']:
if link['rel'] == "next":
print(link['href'])
这真的是最狡猾的方式吗?
答案 0 :(得分:3)
您可以重新组织数据结构,以便按rel
为每个条目编制索引。它将提供一种更自然的方式来访问条目,代价是必须进行转换传递。
hrefs_by_rel = {link['rel']: link['href'] for link in responseData['links']}
print(hrefs_by_rel['next'])
(这也会导致重复的条目被丢弃。)
你可以将显式循环更改为列表理解,但我不一定认为它更好。
rel_hrefs = [link['href'] for link in responseData['links'] if link['rel'] == "next"]