python写入数据库_Python pymysql写入数据库报错

使用Python的pymysql模块写入数据库时遇到 InternalError: (1366, 'Incorrect decimal value: ‘xa0’ for column ‘zuojiesuan’ at row 1') 错误。该错误源于尝试将非数字字符串'xa0'插入到DECIMAL类型的列中。为解决此问题,需要将'xa0'转换为适当的数值类型,如整数或浮点数。" 106440152,9242394,Python多进程加速MySQL批量数据更新,"['Python编程', '数据库管理', '并发处理', 'MySQL优化', '数据处理']
摘要由CSDN通过智能技术生成

我在用Python pymysql写入数据库时一直报错:

pymysql.err.InternalError: (1366, u”Incorrect decimal value: ‘xa0’ for column ‘zuojiesuan’ at row 1″)

百度的结果是编码问题,我不知道具体怎么解决?

–– coding: utf-8 ––

import urllib2

import pymysql

import time

from bs4 import BeautifulSoup

today = time.strftime(‘%Y-%m-%d’,time.localtime(time.time()))

loginHeaders = {

'Host':'www.czce.com.cn',

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36',

'Referer':'http://www.czce.com.cn/portal/jysj/mrhq/A091101index_1.htm',

'Content-Type':'text/html',

'Connection':'keep-alive'

}

url=’http://www.czce.com.cn/portal…’

request = urllib2.Request(url, headers=loginHeaders)

opener = urllib2.build_opener()

response = opener.open(request)

content = response.read().decode(‘gbk’).replace(“”,””).replace(“

”,””)

soup = BeautifulSoup(content,’lxml’).findAll(id=”senfe”)[0]

table = soup.text.split(“n”)

conn = pymysql.connect(host=”192.168.1.98″,user=”root”,passwd=”root”,db=”test”,charset=’utf8′)

cur = conn.cursor()

”’

cur.execute(‘create table zhujiagewang(id INT(10),’

'updatetime TIMESTAMP, '

'collecttime DATE,'

'pinzhongyuefen VARCHAR(10),'

'zuojiesuan DECIMAL(10,2),'

'jinkaipan DECIMAL(10,2),'

'zuigaojia DECIMAL(10,2),'

'zuidijai DECIMAL(10,2),'

'jinshoupan DECIMAL(10,2),'

'jinjiesuan DECIMAL(10,2),'

'zhangdie1 DECIMAL(10,2),'

'zhangdie2 DECIMAL(10,2),'

'chengjiaoliang INT(10),'

'kongpanliang INT(10),'

'zengjianliang INT(10),'

'chengjiaoe DECIMAL(20,2))')

”’

for i in range(0,8):

value=[today,table[16+14*i],table[17+14*i],table[18+14*i],table[19+14*i],table[20+14*i],

table[21+14*i],table[22+14*i],table[23+14*i],table[24+14*i],table[25+14*i],

table[26+14*i],table[27+14*i],table[28+14*i]]

cur.execute(“INSERT INTO zhujiagewang”

"(collecttime,pinzhongyuefen,zuojiesuan,jinkaipan,zuigaojia,zuidijai,"

"jinshoupan,jinjiesuan,zhangdie1,zhangdie2,chengjiaoliang,kongpanliang,zengjianliang,chengjiaoe)"

"VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",value)

conn.commit()

cur.close()

conn.close()

你的做结算这列是DECIMAL类型,你插入一个字符串’xa0’,当然会报错,你要把’xa0’转成整数或者浮点数才行啊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值