Python mysql connector returns tuple
Question: I am connecting to mysql database via mysql connector and running a simple
query to pull a list of IDs. I need to loop over that list and pass them into
some other code. For some reason I am getting a list of tuples. Is this
expected behavior? If not, what am I doing wrong? Here is the snippet of my
code:

    
    
    import mysql.connector
    conn = mysql.connector.connect(host='127.0.0.1', database='t', user='r', password='pwd')
    cursor = conn.cursor()
    query = ( "select id from T where updated < '%s'" % (run_date) )
    cursor.execute(query)
    for row in cursor:
       print (row)
    
    cursor.close()
    

I am getting the following back (from an INT field in d/b):

    
    
    (Decimal('991837'),)
    (Decimal('991838'),)
    (Decimal('991839'),)
    (Decimal('991871'),)
    (Decimal('991879'),)
    (Decimal('991899'),)
    (Decimal('992051'),)
    (Decimal('992299'),)
    (Decimal('992309'),)
    


Answer: Yes, this is expected behavior. Using the cursor as an iterable is basically
equivalent to looping over it using the `fetchone()` method. From the
[documentation for `fetchone()`](https://dev.mysql.com/doc/connector-
python/en/connector-python-api-mysqlcursor-fetchone.html) (emphasis mine):

> This method retrieves the next row of a query result set and returns a
> single **sequence** , or None if no more rows are available. By default,
> **the returned tuple** consists of data returned by the MySQL server,
> converted to Python objects. If the cursor is a raw cursor, no such
> conversion occurs;

