在python中将excel数据发布到mysqldb中

在python中将excel数据发布到mysqldb中,python,python-3.x,pandas,mysql-python,xlrd,Python,Python 3.x,Pandas,Mysql Python,Xlrd,在将数据插入mysql数据库时,它抛出了“MySQLdb.\u exceptions.OperationalError:(1046,'未选择数据库')”。我已经在这个代码片段中一步一步地进行了检查。数据库已连接。但它显示了上述错误 这是我创建的数据库查询 create table database_conn(id int,name varchar(20),age int(100),address varchar(50),state varchar(10), zipcode int(20));

在将数据插入mysql数据库时,它抛出了“MySQLdb.\u exceptions.OperationalError:(1046,'未选择数据库')”。我已经在这个代码片段中一步一步地进行了检查。数据库已连接。但它显示了上述错误

这是我创建的数据库查询

create table database_conn(id int,name varchar(20),age int(100),address varchar(50),state varchar(10), zipcode int(20));
下面是我的python代码片段,用于将数据插入数据库

class Database_conn:
def __init__(self,host,user,password,database,file_name):
    self.host = host
    self.user = user
    self.password = password
    self.database = database
    self.file_name = file_name
    self.conn()
    self.excel_sheet()
    self.db_query()

def conn(self):
    self.mydb = MySQLdb.connect(host=self.host,
                                user = self.user,password = self.password)


def excel_sheet(self):
    self.book = xlrd.open_workbook(self.file_name)
    self.sheet = self.book.sheet_by_name("Sheet1")
    try:
        self.cursor = self.mydb.cursor()
        print('established cursor connection')
    except:
        print('something goes worng')

def db_query(self):

    global values, conn
    self.query = """INSERT INTO database_conn(id,name,age,address,state,zipcode)VALUES(%s,%s,%s,%s,%s,%s)"""

    for i in range(1,self.sheet.nrows):
        id = self.sheet.cell(i,0).value
        name = self.sheet.cell(i,1).value
        age = self.sheet.cell(i,2).value
        address = self.sheet.cell(i,3).value
        state = self.sheet.cell(i,4).value
        zipcode = self.sheet.cell(i,5).value
        values = (id, name, age, address, state, zipcode)
        conn = self.cursor
        conn.execute(self.query, values)
        conn.commit()
        conn.close()


file_name = input('Enter a file_name : ')
d=Database_conn('localhost','****','****','****',file_name)
在上面的代码中,我得到了这一行的错误

conn.execute(self.query, values) 

最后,我将数据插入数据库

以下是我的答案:

class Database_conn:
   def __init__(self,host,user,password,database,file_name):
       self.host = host
       self.user = user
       self.password = password
       self.database = database
       self.file_name = file_name
       self.conn()
       self.excel_sheet()
       self.db_query()
       self.db_close()

def conn(self):
       self.mydb = MySQLdb.connect(host=self.host,
                            user = self.user,password = self.password,db=self.database)


def excel_sheet(self):
   self.book = xlrd.open_workbook(self.file_name)
   self.sheet = self.book.sheet_by_name("Sheet1")
   try:
      self.cursor = self.mydb.cursor()
      print('established cursor connection')
   except:
      print('something goes worng')

def db_query(self):

   global values, conn
   self.query = """INSERT INTO database_conn(id,name,age,address,state,zipcode)VALUES(%s,%s,%s,%s,%s,%s)"""

   for i in range(1,self.sheet.nrows):
     id = self.sheet.cell(i,0).value
     name = self.sheet.cell(i,1).value
     age = self.sheet.cell(i,2).value
     address = self.sheet.cell(i,3).value
     state = self.sheet.cell(i,4).value
     zipcode = self.sheet.cell(i,5).value
     values = (id, name, age, address, state, zipcode)
     conn = self.cursor
     conn.execute(self.query, values)
     conn.close()

 def db_close(self):
     self.database.commit()
     self.database.commit()




file_name = input('Enter a file_name : ')
d=Database_conn('localhost','****','****','*****',file_name)