0

我正在编写一个 Python 脚本,它使用课程 API 收集课程信息。它有两个功能:get_schoolsget_classes。该get_schools函数从 API 获取 JSON 文件并创建不同部门的列表:

def get_schools(term_id):
    data = request('schools', term_id)
    return list(map(lambda school: {
        'id': school['id'],
        'name': school['name']
    }, data))

所以返回的列表是:

[{"id":"A", "name":"Department A"}, {"id": "B", "name": "Department B"}.......]

然后,该get_classes函数使用上述部门检索特定类并将它们写入 JSON 文件。问题是一些部门有多余的课程,我不需要这些课程大大延长了脚本运行的时间。

有没有办法将get_schools功能中的某些部门“列入黑名单”以阻止这种情况发生?所以它会跳过或删除“C 部门”或“F 部门”,但将其他所有内容留在里面。有什么办法吗?

4

1 回答 1

0

您可以添加部门黑名单(使用 aset以获得最佳性能),然后基于黑名单:filter data

def get_schools(term_id):
    blacklist = set(['Department C', 'Department F'])
    data = request('schools', term_id)
    return list(map(lambda school: {
        'id': school['id'],
        'name': school['name']
    }, filter(lambda school: school['name'] not in blacklist, data)))
于 2020-08-17T03:45:42.570 回答