Python mysql connector returns tuple

后端 未结 2 1678
陌清茗
陌清茗 2021-01-18 17:26

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

相关标签:
2条回答
  • 2021-01-18 18:15

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

    0 讨论(0)
  • 2021-01-18 18:25

    if you want to access just the data in the row you need to go into the dictionary

    first you must make it true in the cursor

    cur = db.cursor( buffered=True , dictionary=True)
    

    then the result will be like this :

    {'Decimal' : '991837'}
    

    i'm sure the Decimal is your row name so when you need to access to the value do this

    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['Decimal'])
    
    cursor.close()
    

    i hope it works for i was looking for this solution for the past 2 days and no answers the only way i debugged i opened the debugger and print out all the variables
    have fun with Python :)

    0 讨论(0)
提交回复
热议问题