How to iterate through the columns in a row using sqlite3.Row
Chris Green
cl at isbd.net
Mon Mar 13 04:43:55 EDT 2017
MRAB <python at mrabarnett.plus.com> wrote:
> On 2017-03-12 22:44, Chris Green wrote:
> > This should be simple but I can't manage it at the moment! :-)
> >
> > I have opened a database connection and have set the row_factory to
> > sqlite3.Row.
> >
> > So how do I actually iterate through a row of data having used
> > fetchone to read a row.
> >
> > I.e. I have:-
> >
> > self.conn = sqlite3.connect(dbname)
> > self.conn.row_factory = sqlite3.Row
> > self.cursor = self.conn.cursor()
> > self.table = table
> > ...
> > ...
> > sql = "SELECT * FROM " + self.table + " WHERE firstName||lastName = ?"
> > self.cursor.execute(sql, (name,))
> > row = self.cursor.fetchone()
> >
> > I want a for loop which gives me the column names and values.
> >
> The docs tell you that the sqlite3.Row instances are like tuples, but
> with additional features, such as a .keys() method that will tell you
> the column names. Try:
>
> print(row.keys())
>
> With a little experimentation you'll find that can pass it to dict. Try:
>
> print(dict(row))
>
so are you saying that I should be able to write:-
rowAsDict = dict(row)
--
Chris Green
ยท
More information about the Python-list
mailing list