Python到MySQL db. Errno 9坏文件描述符
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python到MySQL db. Errno 9坏文件描述符,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2334字,纯文字阅读大概需要4分钟。
内容图文
![Python到MySQL db. Errno 9坏文件描述符](/upload/InfoBanner/zyjiaocheng/893/c96c987acaaf42eba3ea9ce99957d467.jpg)
长话短说,我试图从网站上读取HTML并将表的值放在本地MySQL数据库中.我使用BeautifulSoup4成功地将所有信息从表中删除,但是我将它放入MySQL数据库时遇到了麻烦.
我使用的是与Python 2.7.5兼容的mysql.connector.这是我的代码:
import urllib2
from bs4 import BeautifulSoup
import mysql.connector
from mysql.connector import errorcode
# Opens MySQL db and handles all connection errors
dbConfig = {'user':'root',
'password':'pimovi',
'host':'127.0.0.1',
'database':'RateYourMusic'}
try:
db = mysql.connector.connect(**dbConfig)
cursor = db.cursor()
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print "Something is wrong with your user name or password"
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print "Database does not exist"
else:
print err
else:
db.close()
url = 'http://rateyourmusic.com/customchart'
req = urllib2.Request(url, headers={'User-Agent':'Mozilla/5.0'})
read = urllib2.urlopen(req)
soup = BeautifulSoup(read)
table = soup.find('table', {'class':'mbgen'})
for row in table.findAll('tr'):
try:
cells = row.findAll('td')
rank = int(cells[0].find(class_='ooookiig').text)
artist = cells[2].find(class_='artist').text
album = cells[2].find(class_='album').text
year = cells[2].find(class_='mediumg').text
year = int(year[1:5])
entry = {'Rank':rank, 'Artist':artist, 'Album':album, 'Year':year}
add_album = ("INSERT INTO chartinfo "
"(rank_info, artist_info, album_info, year_info) "
"VALUES (rank, artist, album, year)")
cursor.execute(add_album)
db.commit()
print entry
except AttributeError:
pass
cursor.close()
db.close()
追溯[来自评论]
Traceback (most recent call last):
File "C:\Programming\RateYourMusicCrawler\AlbumInfoCrawler.py", line 52, in <module>
cursor.execute(add_album)
File "C:\Python27\lib\site-packages\mysql\connector\cursor.py", line 393, in execute
self._handle_result(self._connection.cmd_query(stmt))
File "C:\Python27\lib\site-packages\mysql\connector\connection.py", line 586, in cmd_query
statement))
File "C:\Python27\lib\site-packages\mysql\connector\connection.py", line 386, in _send_cmd
packet_number)
File "C:\Python27\lib\site-packages\mysql\connector\network.py", line 104, in send_plain
raise errors.OperationalError(str(err))
mysql.connector.errors.OperationalError: [Errno 9] Bad file descriptor
解决方法:
这可能是因为:
else:
db.close()
如果您的try块没有导致任何异常,那将关闭连接.试着把它拿出来.
内容总结
以上是互联网集市为您收集整理的Python到MySQL db. Errno 9坏文件描述符全部内容,希望文章能够帮你解决Python到MySQL db. Errno 9坏文件描述符所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。