Issue 33651: Add get() method to sqlite3.Row class (original) (raw)

Created on 2018-05-25 21:58 by wsanchez, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Messages (5)
msg317719 - (view) Author: Wilfredo Sanchez (wsanchez) Date: 2018-05-25 21:58
The sqlite3.Row class has mapping-like behavior but does not implement the get() method, so providing default values in code requires a bit of boilerplate that is not necessary with dictionaries.
msg317723 - (view) Author: Raymond Hettinger (rhettinger) * (Python committer) Date: 2018-05-26 00:20
How is this needed? SQL queries return rows that are homogenous and with known fields. This is isn't like other dictionaries when you might not know in advance whether a given key is present.
msg317729 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2018-05-26 07:45
I have the same question. Do you have a concrete example where this can be useful? sqlite3.Row is not a mapping. It is a sequence. >>> import sqlite3 >>> import collections.abc >>> issubclass(sqlite3.Row, collections.abc.Sequence) True
msg317778 - (view) Author: Wilfredo Sanchez (wsanchez) Date: 2018-05-27 03:34
Well, sequence and mapping are not mutually exclusive, and sqlite3.Row does allow mapping-style indexing, which is why I expected .get() to work. But I hear Raymond's point about all field being known, and I think that's a good point… and I agree I don't actually need .get(). Feel free to close. Thanks for the quick replies.
msg317781 - (view) Author: Raymond Hettinger (rhettinger) * (Python committer) Date: 2018-05-27 04:18
> But I hear Raymond's point about all field being known, > and I think that's a good point… and I agree I don't > actually need .get(). > Feel free to close. Thanks for the quick replies. Okay, done.
History
Date User Action Args
2022-04-11 14:59:00 admin set github: 77832
2018-05-27 04🔞14 rhettinger set status: open -> closedversions: + Python 3.8, - Python 3.6messages: + resolution: rejectedstage: resolved
2018-05-27 03:34:18 wsanchez set messages: +
2018-05-26 07:45:39 serhiy.storchaka set nosy: + serhiy.storchakamessages: +
2018-05-26 00:20:03 rhettinger set nosy: + rhettingermessages: +
2018-05-25 21:58:55 wsanchez create