diff --git a/scrython/cards/cards_object.py b/scrython/cards/cards_object.py index 38dac2b..71896c8 100644 --- a/scrython/cards/cards_object.py +++ b/scrython/cards/cards_object.py @@ -475,9 +475,9 @@ class CardsObject(FoundationObject): if mode not in modes: raise KeyError("{} is not a key.".format(mode)) - super(CardsObject, self)._checkForKey(mode) + super(CardsObject, self)._checkForKey('prices', mode) - return self.scryfallJson[mode] + return self.scryfallJson['prices'][mode] def related_uris(self): """A dictionary of related websites for this card diff --git a/scrython/foundation.py b/scrython/foundation.py index 9b984a6..0b4a2b7 100644 --- a/scrython/foundation.py +++ b/scrython/foundation.py @@ -30,7 +30,7 @@ class FoundationObject(object): if self.scryfallJson['object'] == 'error': raise Exception(self.scryfallJson['details']) - def _checkForKey(self, key): + def _checkForKey(self, key, nested_key=None): """Checks for a key in the scryfallJson object. This function should be considered private, and should not be accessed in production. @@ -44,6 +44,11 @@ class FoundationObject(object): if not key in self.scryfallJson: raise KeyError('This card has no key \'{}\''.format(key)) + if nested_key: + if not nested_key in self.scryfallJson[key]: + raise KeyError('This card has no key \'{}.{}\''.format(key, nested_key)) + + def _checkForTupleKey(self, parent, num, key): """Checks for a key of an object in an array. This function should be considered private, and