Fixing some things. My except statement in the shell is too broad---it was catching the unicode errors. Someone put a unicode character (long dash, 2012) in a catalog number <shrug>.
Handle each of the items in the lists, not just the first one.