diff --git a/records.py b/records.py index 2f83e54..1f15a95 100644 --- a/records.py +++ b/records.py @@ -50,9 +50,12 @@ class Record(object): return self.values()[key] # Support for string-based lookup. - if key in self.keys(): - i = self.keys().index(key) - if self.keys().count(key) > 1: + usekeys = self.keys() + if hasattr(usekeys, "_keys"): # sqlalchemy 2.x uses (result.RMKeyView which has wrapped _keys as list) + usekeys = usekeys._keys + if key in usekeys: + i = usekeys.index(key) + if usekeys.count(key) > 1: raise KeyError("Record contains multiple '{}' fields.".format(key)) return self.values()[i]