我正在尝试使用 serde_json 将具有预先存在的格式的 JSON 文件反序列化为我自己的 Rust 文件。
我想通过为该类实现一个反序列化器来做到这一点。
我的问题是 JSON 文件可能格式错误,但raw_json_result仍可以正常解码,但生成的数据结构本身格式错误。在这种情况下,我想返回一个错误。
这里形成有效错误对象的机制是什么?我想我想要一条Err(something_valid)线——我只是不知道如何制作something_valid。
impl<'de> Deserialize<'de> for MyClass {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
let raw_json_result = MyAliasedClassFromJson::deserialize(deserializer)?;
MyClass::from_cal_json::<D>(cal_json)
}
}
Run Code Online (Sandbox Code Playgroud) 我刚刚在单元测试中添加了一个图形实用程序——基本上,测试的全自动版本只是进行数值比较,但我希望人们能够要求绘图。
如果我使用我的新参数,仅仅使用 argparseunittest.main()就会令人窒息。我目前正在做的是检查该参数,然后从中删除它sys.argv似乎是错误的。
有没有更好的方法给这只猫剥皮?
unittest.main()会采用备用 argv。unittest.main()忽略争论的方法。if __name__ == '__main__':
parser = argparse.ArgumentParser(
description='Test correction'
)
parser.add_argument(
'--plot-results',
help='Plot results of cal test',
action='store_true'
)
args = parser.parse_args()
if args.plot_results:
while '--plot-results' in sys.argv:
sys.argv.remove('--plot-results')
unittest.main()
Run Code Online (Sandbox Code Playgroud)