qq_34469410 2017-05-09 08:25 采纳率: 0%
浏览 7945
已结题

Python3.5连接pymysql出现cursor问题

Ubuntu下Python3.5连接pymysql时出现错位为 with connect.cursor() as cursor:
AttributeError: 'function' object has no attribute 'cursor'
以下为代码,点击错误跳到with connect.cursor() as cursor这里,不知道为什么,弄了两天了都没弄好,求大神告诉

-*- coding:utf-8 -*-

import urllib
import urllib.request
import re
import random
import pymysql.cursors
#抓取所需内容
from pymysql import connect

user_agent = ["Mozilla/5.0 (Windows NT 10.0; WOW64)", 'Mozilla/5.0 (Windows NT 6.3; WOW64)',
'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko',
'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36',
]
stock_total=[] #stock_total:所有页面的股票数据 stock_page:某页的股票数据
url='http://quote.stockstar.com/stock/ranklist_a_3_1_1.html'
#伪装浏览器请求报头
request=urllib.request.Request(url=url,headers={"User-Agent":random.choice(user_agent)})
try:
response=urllib.request.urlopen(request)
except urllib.error.HTTPError as e: #异常检测
print(e.code)
except urllib.error.URLError as e:
print(e.reason)
content=response.read().decode('gbk') #读取网页内容
#打印成功获取的页码
pattern=re.compile('

')
body=re.findall(pattern,str(content))
pattern=re.compile('>(.*?)<')
stock_page=re.findall(pattern,body[0]) #正则匹配
stock_total.extend(stock_page)

#删除空白字符
stock_last=stock_total[:] #stock_last为最终所要得到的股票数据
for data in stock_total:
if data=='':
stock_last.remove('')
print('1')

db = pymysql.Connect(
host='localhost',
user='root',
passwd='111111',
db='patest1',
charset='utf8',
cursorclass=pymysql.cursors.DictCursor

)

try:
with connect.cursor() as cursor:
sql="insert into pachong values (%s, %s, %s, %s, %s)"

    param=[(stock_last[0]),(stock_last[1]),(stock_last[2]),(stock_last[3]),(stock_last[4]),(stock_last[5])]
    n=cursor.executemany(sql,param)
connect.commit()

finally: print('n')
connect.close()

  • 写回答

1条回答

  • 普通网友 2017-05-09 23:49
    关注

    connect是一个函数,它返回的连接对象才有cursor游标

    例如:

     import pymysql.cursors
    
    #连接配置信息
    config = {
              'host':'127.0.0.1',
              'port':3306,
              'user':'root',
              'password':'csdn.com',
              'db':'employees',
              'charset':'utf8mb4',
              'cursorclass':pymysql.cursors.DictCursor,
              }
    # 创建连接
    connection = pymysql.connect(**config)
    with connection.cursor() as cursor:
    ...
    
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?