Home > Enterprise >  How to query MySQL Record value to Python Variables?
How to query MySQL Record value to Python Variables?

Time:09-16

I want to give python variables with values that I fetch from MySQL database.

#!/usr/bin/python -u
# -*- coding: UTF-8 -*-

import time
import datetime
import mysql.connector
import sys

db = mysql.connector.connect(
    host = "localhost",
    user = "admin",
    password = "admin",
    db = "testonly"
)
mycursor = db.cursor()

if __name__ == '__main__':
    temp = 0
    mycursor.execute("SELECT temperature FROM table ORDER BY primarykey DESC LIMIT 1;") #By selecting one column in a row, I fetch only one record from the talbe.
    data = mycursor.fetchone()
    for temperature in data:
        print(temperature)

    temp = data['temperature']

    sys.exit() 

Then I have error like so:

File "test.py", line 28, in <module>
    temp = data['temperature']
TypeError: tuple indices must be integers, not str

In which way I can give value to python variable for later usage?

CodePudding user response:

By default, fetchone returns a tuple with the data from your database. As it currently stands, you need to access your data by index

temp = data[0]

If you want to access your data by the temperature key, you need to use specify your cursor

from mysql.connector.cursor import MySQLCursorDict
...

mycursor = db.cursor(cursor_class=MySQLCursorDict)

...

temp = data['temperature']

CodePudding user response:

Your object data is a tuple and can't be referenced like that. You need to use this:

temp = data[0]
  • Related