簡體   English   中英

在mysql表中插入python變量時出錯

[英]Error in inserting python variable in mysql table

我正在開發一個覆盆子pi項目,我正在從plc獲取數據並將其存儲到mysql數據庫中。

這是我的代碼:

import minimalmodbus
import serial
import mysql.connector


instrument = minimalmodbus.Instrument('/dev/ttyAMA0',3,mode='rtu')
instrument.serial.baudrate=115200
instrument.serial.parity = serial.PARITY_NONE
instrument.serial.bytesize = 8
instrument.serial.stopbits = 1
instrument.serial.timeout = 0.05


con = mysql.connector.connect(user='root',password='raspberry',host='localhost',
                              database='Fujiplc')

cursor = con.cursor()

try:
    reg_value=instrument.read_register(102)
    print reg_value
    cursor.execute("insert into Register_Values values(%s)",(reg_value))
    print ('One row inserted successfully.')
except IOError:
    print("Failed to read from PLC.")


print (cursor.rowcount)

con.commit()

cursor.close()

con.close()

運行此代碼后,我得到下一個錯誤:

Traceback (most recent call last):
  File "/home/pi/rpi_to_plc_read.py", line 22, in <module>
    cursor.execute("insert into Register_Values values(%d)",(reg_value))
  File "/usr/local/lib/python2.7/dist-packages/mysql/connector/cursor.py", line 477, in execute
    stmt = operation % self._process_params(params)
  File "/usr/local/lib/python2.7/dist-packages/mysql/connector/cursor.py", line 355, in _process_params
    "Failed processing format-parameters; %s" % err)
ProgrammingError: Failed processing format-parameters; argument 2 to map() must support iteration

我已經經歷了這么多解決方案,但問題無法解決。 請幫我。

python中很常見的錯誤。

(reg_value)不是元組(reg_value,)是一個元組

我認為應該是。

cursor.execute("insert into Register_Values values(%s)",(reg_value))
con.commit()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM