理解python类型:可选、可调用、可用于读取JSON文件时的错误处理
Microsoft python代码使用RichPath和dpu_utils加载json文件。我在执行以下代码时遇到问题。如果有错误,它只是返回None吗?我知道这是一个生成器,我可以调用next(tmp=test())理解python类型:可选、可调用、可用于读取JSON文件时的错误处理,python,error-handling,Python,Error Handling,Microsoft python代码使用RichPath和dpu_utils加载json文件。我在执行以下代码时遇到问题。如果有错误,它只是返回None吗?我知道这是一个生成器,我可以调用next(tmp=test()) 否,此函数返回生成器对象。无论如何,Callable[[str,Exception],None]基本上只是一个函数,它接受两个位置参数,第一个是字符串,另一个是异常,并返回None。这被称为n任何抛出异常的行。调用该函数的结果不会返回,所以它只跳过该行好的,所以它只跳过该行。酷
否,此函数返回生成器对象。无论如何,
Callable[[str,Exception],None]
基本上只是一个函数,它接受两个位置参数,第一个是字符串,另一个是异常,并返回None
。这被称为n任何抛出异常的行
。调用该函数的结果不会返回,所以它只跳过该行好的,所以它只跳过该行。酷。谢天谢地,我应该说,“伊埃尔德不是吗?”
from typing import Any, List, Optional, Iterable, Callable
from collections import OrderedDict
def test( error_handling: Optional[Callable[[str, Exception], None]]=None) -> Iterable[Any]:
fh = open('ppi/train_graph.json', 'rt', encoding='utf-8')
try:
for line in fh:
try:
yield json.loads(line, object_pairs_hook=OrderedDict)
except Exception as e:
if error_handling is None:
raise
else:
error_handling(line, e)
finally:
fh.close()
gen = test()