def loadJson(filename): ret_json = None try: with open(filename, "r") as json_file: ret_json = json.load(json_file) except Exception as e: print(f"Error while opening {filename}.\nerror message: {e}") return ret_json #json file로부터 읽어온다. def getUrls(json_dict, url_type:int = 0, max_len:int = -1): if url_type <0 or url_type >1: raise Exception("Invalid Parameter(url_type) Error!") if url_type == 0: ret_url_list = [obj['url'] for obj in json_dict] if url_type == 1: ret_url_list = [obj['url'] for obj in json_dict['_embedded']['phish']] if max_len != -1: if len(ret_url_list) > max_len: ret_url_list = ret_url_list[:max_len] random.shuffle(ret_url_list) return ret_url_list # input : filepath # output : url list def getUrls_f(_filenames, url_type: int = 0, max_len:int = -1): ret_url_list = [] if type(_filenames) == str: json_dict = loadJson(_filenames) ret_url_list = getUrls(json_dict, url_type, max_len) if type(_filenames) == list: for filename in _filenames: json_dict = loadJson(filename) ret_url_list.extend(getUrls(json_dict, url_type, max_len)) return ret_url_list
时间: 2023-06-25 21:04:09 浏览: 55
这段代码是一个用于从 JSON 文件中读取 URL 的函数。它包含两个函数,loadJson 和 getUrls。
loadJson 函数接受一个文件名作为参数,尝试打开该文件并将其解析为 JSON 数据。如果出现任何错误,它将打印错误信息并返回 None。否则,它将返回解析后的 JSON 数据。
getUrls 函数接受一个 JSON 字典、一个 url_type 参数和一个 max_len 参数。url_type 参数指定从 JSON 数据中提取 URL 的方式,0 表示直接从 JSON 数据中提取,1 表示从嵌入式 JSON 数据中提取。max_len 参数指定最多返回多少个 URL。如果未指定 max_len 或 max_len 为负数,则返回所有 URL。
getUrls_f 函数接受一个文件名列表、url_type 参数和 max_len 参数。它调用 loadJson 和 getUrls 函数以从所有文件中提取 URL,并将它们存储在一个列表中。然后,它返回该列表。
相关问题
def loadJson(filename): ret_json = None try: with open(filename, "r") as json_file: ret_json = json.load(json_file) except Exception as e: print(f"Error while opening {filename}.\nerror message: {e}") return ret_json
这段代码是用来读取一个 JSON 文件并将其转换为 Python 对象的函数。它的输入参数是 JSON 文件的文件名,函数返回值是 Python 对象。具体地,函数首先将 ret_json 变量初始化为 None,然后尝试以只读模式打开指定的文件,如果打开成功,则使用 json.load() 函数将文件中的 JSON 数据解析为 Python 对象,并将其保存到 ret_json 变量中。最后,函数返回 ret_json 变量的值。如果在打开文件或解析 JSON 时发生错误,函数会捕获异常并打印错误信息,然后返回 None。
解释android studio代码:boolean ret_init = veinvisualization.Init(getAssets());
这是一个调用 veinvisualization 库中的 Init 函数的代码,该函数需要传入一个参数 getAssets(),并返回一个布尔值 ret_init,表示初始化是否成功。具体的实现细节需要查看 veinvisualization 库的文档或源代码。