问题描述
在 Mutagen 中,我从音频文件中读取标签,但是当标签不存在时,我当然会收到错误。
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
.AddJwtBearer(Options =>
{
Options.Authority = "https://identity.domain.com/identity/";
Options.Audience = "resource1"; //your api baseurl e.g if you want userinfo_endpoint specify https://identity.domain.com/identity/connect/userinfo
Options.TokenValidationParameters.ValidTypes = new[] { "at+jwt" };
})
.AddIdentityServerAuthentication(options =>
{
options.Authority = "https://identity.domain.com/identity/";
options.ApiName = "api name / scope";
options.ApiSecret = "api secret / scope secret";
});
services.AddAuthorization(options =>
{
options.AddPolicy("tokens",x =>
{
x.AddAuthenticationSchemes("jwt","introspection");
x.RequireAuthenticatedUser();
});
});
}
如果标签不存在,如何继续?
我已经尝试过:
audio = ID3(musicfile)
print(audio['TXXX:SERIES'].text[0])
KeyError: 'TXXX:SERIES'
还有
if audio['TXXX:SERIES'].text[0] is None:
print('No series')
else:
仍然报错。
if not audio['TXXX:SERIES'].text[0]:
print('No series')
else:
解决方法
你必须使用try/except:
try:
print(audio['TXXX:SERIES'].text[0])
except:
print('An exception occurred')
如果你希望在异常发生时什么都不发生,只需使用 pass:
try:
print(audio['TXXX:SERIES'].text[0])
except:
pass
您可以在此处了解有关捕获异常/异常处理的更多信息:https://docs.python.org/3/tutorial/errors.html