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 07:04:09 浏览: 231
这段代码是一个用于从 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,并将它们存储在一个列表中。然后,它返回该列表。
相关问题
这段代码是什么意思?import ansa from ansa import base from ansa import constants def main(): geb_bc = base.GetEntity(constants.NASTRAN, 'GEB_BC', 1) ret_val = base.ApplyGenericEntities(geb_bc) print(ret_val) #or for a matrix... def main(): all_geb_bc = base.CollectEntities(constants.NASTRAN, None, 'GEB_BC') ret_val = base.ApplyGenericEntities(all_geb_bc) print(ret_val)
这段代码使用了 ANSA 软件的 Python API,它的作用是将 NASTRAN 类型的 GEB_BC 实体应用到模型中。其中,第一个 `main()` 函数从 ANSA 数据库中获取名为 "GEB_BC" 的实体,并将其应用到模型中。第二个 `main()` 函数则获取所有名为 "GEB_BC" 的实体,并将它们作为矩阵应用到模型中。函数返回值 `ret_val` 是一个布尔值,指示实体是否成功应用到模型中。最后,通过 `print` 函数将返回值输出到控制台。
def CommThread(shared_data, SockServer, sensor=None, detector=None, file_path=None): while shared_data.stop_status.value == False: if shared_data.capture_status.value == True: print('start capture and find pose') ret = False for i in range(0,3): try: if sensor is not None: ret, pose = CaptureAndFindPose(sensor, detector) else: ret, pose = ReadPointAndFindPose(detector) except: print('find pose fail') if ret and len(pose)==detector.NumFind: break send_data = ''
这段代码是一个线程函数,用于在后台运行。它的作用是从传感器或文件中读取数据,然后进行姿态检测并将结果发送给客户端。具体来说,它会不断地循环,直到收到停止信号。当启动信号被设置时,它会尝试从传感器或文件中读取数据,并使用给定的姿态检测器进行姿态检测。如果成功检测到姿态,则将结果发送给客户端。如果在三次尝试后仍然无法检测到姿态,则会输出“find pose fail”并继续循环。
阅读全文