使用Python在MySQL表中插入值

时间:2015-03-09 01:08:21

标签: python mysql python-2.7

我在MySQL中有一个Bank表,其中包含以下模式:

`User_id` int(11) NOT NULL AUTO_INCREMENT,
`Amount` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`User_id`)

我正在尝试将Amount作为输入并使用Python在表中输入记录。我运行以下代码:

print " enter the bank amount"
Amount = raw_input()
cursor.execute('''INSERT into Bank (Amount)
                  values (%d)''',
                  (Amount))
cursor.execute('commit')

但是,它显示以下错误:

Traceback (most recent call last):
  File "create_user.py", line 23, in <module>
    (Amount))
  File "/usr/local/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 187, in execute
    query = query % tuple([db.literal(item) for item in args])
TypeError: %d format: a number is required, not str

1 个答案:

答案 0 :(得分:2)

raw_input()返回一个字符串:

  

如果存在prompt参数,则将其写入标准输出   没有尾随换行符。然后该函数从输入中读取一行,   将其转换为字符串(剥离尾随换行符),然后返回   这一点。

>>> test = raw_input()
1
>>> test
'1'
>>> type(test)
<type 'str'>

您需要将其转换为int(根据Amount列类型):

amount = int(raw_input())  # TODO: handle exceptions?

cursor = db.cursor()

cursor.execute("""
    INSERT INTO 
        Bank (Amount)
    VALUES 
        (%d)
""", (amount, ))

db.commit()