如何将Python请求的列表输出附加到一个没有重复的列表中



我使用Python请求从API获取数据。这是代码,请忽略中间的所有解析,这只是获取所需资源的建议方法。

class_url = f"https://species-ws.nbnatlas.org/species/{taxon_id}"
class_response = requests.get(class_url)
class_json = class_response.json()
jsonpath_exprr = parse('$..classification')
class_resources = [ match.value for match in jsonpath_exprr.find(class_json) ]
r = re.compile("(?!.*id)")
taxon_level_names = list(filter(r.match, list(class_resources[0].keys())))
jsonpath_exprr = parse(f'$..classification.{taxon_level_names}')
class_resources = [ match.value for match in jsonpath_exprr.find(class_json) ]

print(class_resources)

上面的代码嵌套在for循环中,因此返回多个列表作为响应。对此的回应如下:

['Tetrapoda', 'Animalia', 'Columbiformes', 'Aves', 'Columba', 'Chordata', 'Columbidae', 'Columba palumbus', 'Columba palumbus']
['Tetrapoda', 'Animalia', 'Passeriformes', 'Aves', 'Turdus', 'Chordata', 'Turdidae', 'Turdus merula', 'Turdus merula']
['Tetrapoda', 'Animalia', 'Passeriformes', 'Aves', 'Erithacus', 'Chordata', 'Muscicapidae', 'Erithacus rubecula', 'Erithacus rubecula']
['Tetrapoda', 'Animalia', 'Passeriformes', 'Aves', 'Cyanistes', 'Chordata', 'Paridae', 'Cyanistes caeruleus', 'Cyanistes caeruleus']
['Tetrapoda', 'Animalia', 'Passeriformes', 'Aves', 'Corvus', 'Chordata', 'Corvidae', 'Corvus corone', 'Corvus corone']
['Tetrapoda', 'Animalia', 'Passeriformes', 'Aves', 'Parus', 'Chordata', 'Paridae', 'Parus major', 'Parus major']
['Tetrapoda', 'Animalia', 'Passeriformes', 'Aves', 'Pica', 'Chordata', 'Corvidae', 'Pica pica', 'Pica pica']

我希望实现的是一个没有重复条目的单一列表。如果你能教我如何拥有一串相同的,我会非常感激。所需输出的示例:

['Tetrapoda', 'Animalia', 'Columbiformes', 'Aves', 'Columba', 'Chordata', 'Columbidae', 'Columba palumbus', 'Columba palumbus', 'Passeriformes', 'Corvidae', 'Pica pica' ...]

我会尝试set,然后将其转换为list

https://docs.python.org/3/tutorial/datastructures.html

https://www.geeksforgeeks.org/python-convert-set-into-a-list/

最新更新