Life_is_Romantic 2021-07-23 16:56 采纳率: 68.4%
浏览 154
已结题

请问各位python存入MySQL的数据含有:数字,文字和括号,怎么选类型

python存入MySQL数据库中的内容:如图画圈的内容:
img

其中第一行是控制台打印的,第二行才是存入的内容

这种在MySQL中怎么设置type呢?python每次都弹出pymysq.err.ProgramingError:(1064,...)

img

我的代码

from bs4 import BeautifulSoup
import requests
import pymysql

conn=pymysql.connect(host='localhost',user='root',passwd='789456',db='weather',port=3306,charset='utf8')
cursor=conn.cursor()

def get_temperature(url):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}  # 设置头文件信息
    response = requests.get(url, headers=headers).content  # 提交requests get 请求
    soup = BeautifulSoup(response, "lxml")  # 用Beautifulsoup 进行解析

    conmid = soup.find('div', class_='conMidtab')
    conmid2 = conmid.findAll('div', class_='conMidtab2')

    for info in conmid2:
        a=info.find('tr')
        tds = a.find_all('td')
        tm = tds[2].text
        tr_list = info.find_all('tr')[2:]  # 使用切片取到第三个tr标签
        for index, tr in enumerate(tr_list):  # enumerate可以返回元素的位置及内容
            td_list = tr.find_all('td')
            if index == 0:  # tr_list的列表中第一个tr时有市名,第二个tr没有市名,只有省名
                province_name = td_list[0].text.replace('\n', '')  # 取每个标签的text信息,并使用replace()函数将换行符删除
                city_name = td_list[1].text.replace('\n', '')
                weather = td_list[5].text.replace('\n', '')
                wind = td_list[6].text.replace('\n', '')
                max = td_list[4].text.replace('\n', '')
                min = td_list[7].text.replace('\n', '')

                print(province_name,tm)
            else:
                city_name = td_list[0].text.replace('\n', '')
                weather = td_list[4].text.replace('\n', '')
                wind = td_list[5].text.replace('\n', '')
                max = td_list[3].text.replace('\n', '')
                min = td_list[6].text.replace('\n', '')

            print(city_name, weather, wind, max, min, tm)
            # 插入产品信息
            # sql = "INSERT INTO tqyb(city,weather,wind,max,min) VALUES ('%s','%s','%s','%s','%s')" % (city_name, weather, wind, max, min)
            sql = "INSERT INTO mytqyb(city,weather,wind,max,min,tm) VALUES ('%s','%s','%s','%s', '%s', ‘%s’)" % ( city_name, weather, wind, max, min, tm )
            cursor.execute(sql)

if __name__ == '__main__':
    urls = ['http://www.weather.com.cn/textFC/hb.shtml',
            'http://www.weather.com.cn/textFC/db.shtml',
            'http://www.weather.com.cn/textFC/hd.shtml',
            'http://www.weather.com.cn/textFC/hz.shtml',
            'http://www.weather.com.cn/textFC/hn.shtml',
            'http://www.weather.com.cn/textFC/xb.shtml',
            'http://www.weather.com.cn/textFC/xn.shtml']
    for url in urls:
        get_temperature(url)
    conn.commit()
    conn.close()

我的目的是将城市,天气,时间等保存到MySQL

  • 写回答

3条回答 默认 最新

  • 忍气吞声埋头苦干 2021-07-23 16:59
    关注

    pymysql啊
    直接输入原生 sql 的insert 语句,然后输入数据
    insert into tablename (date,) values ('%s')" % (date)

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月1日
  • 修改了问题 7月24日
  • 修改了问题 7月24日
  • 修改了问题 7月23日
  • 展开全部

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看