python往mysql存入数据_Python向mysql存入数据出错.

问题描述

问题出现的环境背景及自己尝试过哪些方法

百度搜过了,没有详细的内容

相关代码

import re

import requests

from bs4 import BeautifulSoup

import pymysql

import time

# 向数据库插入数据

conn = pymysql.connect(

host='localhost',

port=3306,

user='root',

password='root',

db='zhujia',

charset='utf8')

# 得到一个可以执行sql语句的光标对象

cursor = conn.cursor()

# 检测链接状态

def getHtml(urls):

try:

r = requests.get(urls, timeout=30)

r.raise_for_status() # 如果状态不是200,引发HTTPError异常

r.encoding = r.apparent_encoding # 转换为合适的编码

return r.text

except:

return "产生异常"

# 获取数据

def getInfo(html):

html = BeautifulSoup(html, 'html.parser')

mingcheng = html.find_all('table', class_='table')

diqu = html.find('tbody')

jiage = diqu.get_text().replace('\n\n\n', '\r').replace('\n\n', '').replace('\n', ' ').split(

"\r") # 去除多余空格并分割字符串

a = []

for jia in jiage:

diqu = jia[:3].strip()

waisanyuan = jia[3:9].strip()

neisanyuan = jia[9:15].strip()

tuzazhu = jia[15:21].strip()

yumi = jia[21:26].strip()

doupo = jia[26:31].strip()

riqi = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))

zuhe = [diqu+','+waisanyuan+','+neisanyuan+','+tuzazhu+','+yumi+','+doupo+','+riqi]

for i in zuhe:

a.append(i)

return a

# 数据入库

def saveData(dat):

for i in dat:

data = i

# 定义要执行的sql语句

sql = "insert into pigs(地区名称,外三元,内三元,土杂猪,玉米,豆粕,日期) VALUES(%s,%s,%s,%s,%s,%s,%s);"

print(data)

try:

# 执行sql语句

re = cursor.execute(sql, data)

# 从游标中获取结果

cursor.fetchall()

# 提交事务

conn.commit()

print("插入成功!")

# 操作单条数据获取被插入数据的id方法

last_id = cursor.lastrowid

except Exception as e:

# 有异常回滚事务

print("插入失败!")

conn.rollback()

# 关闭光标对象

cursor.close()

# 关闭数据库链接

conn.close()

# 主函数

def main():

urls = "https://zhujia.zhuwang.cc/areapriceinfo-140600.shtml" # 地址

html = getHtml(urls)

dat = getInfo(html)

saveData(dat)

# 当模块被直接运行时,以下代码块将被运行

if __name__ == '__main__':

main()

你期待的结果是什么?实际看到的错误信息又是什么?

运行后:bVbDSe4

请问如何解决?感谢~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值