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))

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to