Repeated MySQL queries from Python

后端 未结 2 1318
遥遥无期
遥遥无期 2021-01-25 02:48

I need to repeatedly query a MySQL DB from Python, as the data is rapidly changing. Each time the data is read, it is transferred into a list.

I had assumed that simply

2条回答
  •  庸人自扰
    2021-01-25 03:19

    I'd make a few changes. First, declare the cursor before the while loop. I would also do a buffered cursor. And finally, close the cursor and DB after the file is done. Hope this helps.

    import mysql.connector
    from mysql.connector import Error
    from time import sleep
    
    # Create empty list to store values from database.
    listSize = 100
    myList = []
    
    for i in range(listSize):
        myList.append([[0,0,0]])
    
    # Connect to MySQL Server
    mydb = mysql.connector.connect(host='localhost',
                                   database='db',
                                   user='user',
                                   password='pass')
    mycursor = mydb.cursor(buffered=True, dictionary=True)
    
    # Main loop
    while True:
    
        # SQL query
        sql = "SELECT * FROM table"
    
        # Read the database, store as a dictionary
        mycursor.execute(sql)
    
        # Store data in rows
        myresult = mycursor.fetchall()
    
        # Transfer data into list
        for row in myresult:
            myList[int(row["rowID"])] = (row["a"], row["b"], row["c"])
    
            print(myList[int(row["rowID"])])
    
        print("---")
        sleep (0.1)
    mycursor.close()
    mydb.close()
    

提交回复
热议问题