我正在处理1850年的O'Neills Folksong语料库,因为它涉及music21语料库。我需要遍历所有歌曲。
我尝试使用以下代码
songs = corpus.getComposer('oneills1850')
for ruta in songs:
op = converter.parse(ruta)
numbers = op.getNumbers()
...然后迭代数字。在大多数情况下,每个op
变量都是Opus对象,并且其每个数字都与Score关联。
问题在于,这并不总是正确的。例如,songs
的第15个元素(即索引14)本身是一个Score对象,而不是Opus。所以我的代码在尝试使用getNumbers时崩溃。
我猜想应该先检查op
是Opus(在这种情况下,使用getNumbers就像我之前所做的那样)或Score(在这种情况下,跳过第二个迭代部分)来解决。但是我找不到解决方法,或者其他解决我问题的方法。
答案 0 :(得分:1)
如果在调用对象之前必须确定对象的类型,请使用org.springframework.dao.InvalidDataAccessApiUsageException:
org.hibernate.hql.internal.ast.QuerySyntaxException:
unexpected AST node: case near line 3, column 146
:
isinstance