Python 使用多线程写入数据库,报错

#问题描述,定义了一个函数,用于数据库写入表,直接使用函数是可以运行,但我创建了一个
多线程,在多线程里面使用运行函数,然后后错
import mysql.connector
from mysql.connector import errorcode
import threading,time

#数据库连接参数

def sqlconn():
dbconfig={'user': 'qrcodeadmin','password': 'careyes!@#','host': '119.23.8.62','port':3308,'database': 'qrcodes','raise_on_warnings': True}
try:
cnx = mysql.connector.connect(**dbconfig)
print('数据库连接成功')
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.encode)
return cnx

def handle():
while(True):
global UID,ID
for i in range(50):
print(i)
sqlinsert="INSERT INTO qrcode (URL,QrID) VALUES (%s,%s)",(UID,ID)
cur.execute(sqlinsert[0],sqlinsert[1])
cur.execute(sqlinsert[0],sqlinsert[1])
dbcon.commit()

if name=='__main__':
global cur
dbcon=sqlconn()
cur=dbcon.cursor()
UID=' MjAxNzEwMTExMjQyNDQ'
ID='201710111242420111'
#直接使用handle可以运行
handle()
#-------------
sql_thread=threading.Thread(target=handle)
#如果使用线程就会报错
sql_thread.start()
dbcon.close()
print(dbcon)

    #报错内容
    Exception in thread Thread-1:

Traceback (most recent call last):
File "C:\Python\lib\site-packages\mysql\connector\connection.py", line 280, in
_send_cmd
self._socket.send(
AttributeError: 'NoneType' object has no attribute 'send'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Python\lib\threading.py", line 914, in _bootstrap_inner
self.run()
File "C:\Python\lib\threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "sqltestV0.2_Thread.py", line 34, in handle
cur.execute(sqlinsert[0],sqlinsert[1])
File "C:\Python\lib\site-packages\mysql\connector\cursor.py", line 561, in exe
cute
self._handle_result(self._connection.cmd_query(stmt))
File "C:\Python\lib\site-packages\mysql\connector\connection.py", line 514, in
cmd_query
result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
File "C:\Python\lib\site-packages\mysql\connector\connection.py", line 284, in
_send_cmd
raise errors.OperationalError("MySQL Connection not available.")
mysql.connector.errors.OperationalError: MySQL Connection not available.

5个回答

楼上的原因在于,commit是独占式的,因此在某个线程commit的时候,其它线程执行execute,就会出现楼主的错误。因为对这个线程来说,conn是 not available的,因此
1:建议先生成一个.sql文件,再导入。
2:多线程使用同一个链接时,在所有的execute完成之后再统一commi;
3:多线程使用同一个链接时,如果不想使用第二个方式,请使用lock避免踩空
在import下面加上
mutex = threading.Lock()

if mutex.acquire():

cur.execute(sqlinsert[0],sqlinsert[1])
dbcon.commit()
mutex.release()

CaiNiaoWuZui
CaiNiaoWuZui 回复beishanfengyun: 个人用的是pymysql,没有使用sql_thread.join()。至于cdbcon.close个人是在所有execute完成之后再commit的
大约 2 年之前 回复
beishanfengyun
beishanfengyun 回复beishanfengyun: 楼主的方法有用,还有一点就是要加一句sql_thread.join(),不然dbcon.close()会影响报错
大约 2 年之前 回复
beishanfengyun
beishanfengyun 楼主的方法有用,还有一点就是要加一句sql_thread,不然dbcon.close()会影响报错
大约 2 年之前 回复

代码复制过来的时候,空格被网页去掉了。语法里面应该有空格缩进。

MySQL连接有问题,没有连接成功

MySQL Connection not available.

连接有问题,你先用工具试试能不能连接到MySQL.

将dbcon作为参数传到线程里或者定义成global的来使用。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python将图片写入数据库 sql语句报错
python语句如下 data 为二进制读取的图片文件 ``` cur.execute("INSERT INTO `data_collect`.`image_data`(`time`, `value`) VALUES (%d, %s)" % (count, pymysql.Binary(data))) ``` 这个是报错信息 ``` pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'b'\\xff\\xd8\\xff\\xdb\\x00\\x84\\x00\\x02\\x01\\x01\\x02\\x01\\x01\\x02\\x02\\x01\\x02\\x02\\x02\\x' at line 1") ``` 根据网上的解决办法 去掉了%s的引号 依旧报错 求大佬dian'bo
Python+xlwings 多线程操作excel 报错,请问怎么解决
错误内容: pywintypes.com_error: (-2147417842, '应用程序调用一个已为另一线程整理的接口。', None, None)
我修复了移动硬盘。然后发现移动硬盘上面的python程序无法写入,报错PermissionError [Errno 13],之前是没有报错的,同样的程序。
今天移动硬盘出了点问题,然后我修复了移动硬盘。然后发现移动硬盘上面的python程序无法写入,报错PermissionError [Errno 13],之前是没有报错的,同样的程序。所以不要怀疑程序有问题。程序是绝对没有问题的 请问各位怎么解决PermissionError [Errno 13],感觉是权限问题,python读取不了那些库 有大佬帮忙解决吗 #python# #权限#
python3 通过ssh链接数据库报错10054
![图片说明](https://img-ask.csdn.net/upload/201712/18/1513587149_562603.png) 如图,链接数据库是可以的,但是到执行sql报错。 pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query ([WinError 10054] 远程主机强迫关闭了一个现有的连接。)')
python在Excel写入数据并实时显示
可以使用python的xlrd在Excel中写入数据,但需要Save后,再打开才能显示出写入的内容。 如何在写入的同时,Excel处于打开状态,并实时更新写入内容?
python3 在多线程下如何防止在更新或插入数据库时使数据不同步
python在多线程下,每个线程都要访问数据库,然后相应的插入数据再把插入的数据取出来。 如果一起执行插入的话,取出来的可能就是最后一个线程插入的数据,这种问题应该如何解决呢? 请高手指点,谢谢。
python 安装 pymssql 库时报错
安装第三方库 ``` pip install pymssql Traceback (most recent call last): File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_vendor\urllib3\response.py", line 425, in _error_catcher yield File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_vendor\urllib3\response.py", line 507, in read data = self._fp.read(amt) if not fp_closed else b"" File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_vendor\cachecontrol\filewrapper.py", line 62, in read data = self.__fp.read(amt) File "c:\users\XXX\appdata\local\programs\python\python37\lib\http\client.py", line 457, in read n = self.readinto(b) File "c:\users\XXX\appdata\local\programs\python\python37\lib\http\client.py", line 501, in readinto n = self.fp.readinto(b) File "c:\users\XXX\appdata\local\programs\python\python37\lib\socket.py", line 589, in readinto return self._sock.recv_into(b) File "c:\users\XXX\appdata\local\programs\python\python37\lib\ssl.py", line 1071, in recv_into return self.read(nbytes, buffer) File "c:\users\XXX\appdata\local\programs\python\python37\lib\ssl.py", line 929, in read return self._sslobj.read(len, buffer) socket.timeout: The read operation timed out During handling of the above exception, another exception occurred: Traceback (most recent call last): File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_internal\cli\base_command.py", line 153, in _main status = self.run(options, args) File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_internal\commands\install.py", line 382, in run resolver.resolve(requirement_set) File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_internal\legacy_resolve.py", line 201, in resolve self._resolve_one(requirement_set, req) File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_internal\legacy_resolve.py", line 365, in _resolve_one abstract_dist = self._get_abstract_dist_for(req_to_install) File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_internal\legacy_resolve.py", line 313, in _get_abstract_dist_for req, self.session, self.finder, self.require_hashes File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_internal\operations\prepare.py", line 194, in prepare_linked_requirement progress_bar=self.progress_bar File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_internal\download.py", line 465, in unpack_url progress_bar=progress_bar File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_internal\download.py", line 316, in unpack_http_url progress_bar) File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_internal\download.py", line 551, in _download_http_url _download_url(resp, link, content_file, hashes, progress_bar) File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_internal\download.py", line 253, in _download_url hashes.check_against_chunks(downloaded_chunks) File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_internal\utils\hashes.py", line 80, in check_against_chunks for chunk in chunks: File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_internal\download.py", line 223, in written_chunks for chunk in chunks: File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_internal\utils\ui.py", line 160, in iter for x in it: File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_internal\download.py", line 212, in resp_read decode_content=False): File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_vendor\urllib3\response.py", line 564, in stream data = self.read(amt=amt, decode_content=decode_content) File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_vendor\urllib3\response.py", line 529, in read raise IncompleteRead(self._fp_bytes_read, self.length_remaining) File "c:\users\XXX\appdata\local\programs\python\python37\lib\contextlib.py", line 130, in __exit__ self.gen.throw(type, value, traceback) File "c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip\_vendor\urllib3\response.py", line 430, in _error_catcher raise ReadTimeoutError(self._pool, None, "Read timed out.") pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='pypi.tuna.tsinghua.edu.cn', port=443): Read timed out. ``` 也下载了 wordcloud-1.6.0-cp37-cp37m-win_amd64.whl python版本是3.7 64位
pyspider写入数据库报错 MySQLdb._exceptions.OperationalError: (2006, '')
问题背景: 因为要将爬取的内容写入到数据库,所以在navicat内创建了新的数据表, 并设置好字段。在pyspider的调试页面的时候数据可以正常写入到mysql内。 但是已在pyspider的webui页面点击running后就会报错。 调试页面的代码: try: cursor = self.db.cursor() #data= sql = "insert into zpxx(jobtitle,Jobnature, workplace,Experiences,major,lan,wages,ProfessionalTitle,Number,dates,renzhiyaoqiu,companyjianjie,companysize,companyxingzhi,companytel,companyurl,companyemail) values ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')"%(title,Nature,Place,exp,major,Lan,wages,Zc,num,date,Req,company_profile,company_size,company_nature,tel,url,email) cursor.execute(sql) cursor.close() self.db.commit() self.db.close() except Exception as e: print (e) self.db.rollback() 只放了写入数据库部分的代码。 在调试页面的时候一切正常,而且数据库也有信息。 但是一运行就会报错: (2006, '') [E 190417 08:57:22 base_handler:203] (2006, '') Traceback (most recent call last): File "c:\py36_virtualenv\lib\site-packages\pyspider\libs\base_handler.py", line 196, in run_task result = self._run_task(task, response) File "c:\py36_virtualenv\lib\site-packages\pyspider\libs\base_handler.py", line 176, in _run_task return self._run_func(function, response, task) File "c:\py36_virtualenv\lib\site-packages\pyspider\libs\base_handler.py", line 155, in _run_func ret = function(*arguments[:len(args) - 1]) File "<1>", line 63, in detail_page File "c:\py36_virtualenv\lib\site-packages\MySQLdb\cursors.py", line 183, in execute while self.nextset(): File "c:\py36_virtualenv\lib\site-packages\MySQLdb\cursors.py", line 136, in nextset nr = db.next_result() MySQLdb._exceptions.OperationalError: (2006, '') 上网查了很多,要么是说最大写入数不对等等,可是试了都没有用 求指教
python写入sql server时报错8114
(pymssql.OperationalError) (8114, b'Error converting data type nvarchar to float.DB-Lib error message 20018, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\n') python写入sql server时报错8114,想问下这个是数据类型设置的原因么, 我的做法是create_engine后,直接df.to_sql,可以直接将想要的数据类型报错到sql server中么,需要怎么做
python多线程最大线程数默认设置为什么与CPU数量有关。
【新手提问】 如题 python多线程最大线程数默认设置为什么与CPU数量有关。按照平时的了解,由于CPython 解释器,python的多线程不是伪多线程吗?实际上并不能使用到多个CPU,那为什么官方的默认设置线程池中最大线程数会与CPU数相关? concurrent.futures的文档: > Changed in version 3.5: If max_workers is None or not given, it will default to **the number of processors on the machine, multiplied by 5**, assuming that ThreadPoolExecutor is often used to overlap I/O instead of CPU work and the number of workers should be higher than the number of workers for ProcessPoolExecutor. > Changed in version 3.8: Default value of max_workers is changed to **min(32, os.cpu_count() + 4)**. This default value preserves at least 5 workers for I/O bound tasks. It utilizes at most 32 CPU cores for CPU bound tasks which release the GIL. And it avoids using very large resources implicitly on many-core machines.
Django执行python manage.py makemigrations 报错,数据库是postgresql,大神救救孩子
Traceback (most recent call last): File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\db\backends\base\base.py", line 220, in ensure_connection self.connect() File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\utils\asyncio.py", line 26, in inner return func(*args, **kwargs) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\db\backends\base\base.py", line 197, in connect self.connection = self.get_new_connection(conn_params) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\utils\asyncio.py", line 26, in inner return func(*args, **kwargs) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\db\backends\postgresql\base.py", line 185, in get_new_connection connection = Database.connect(**conn_params) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\psycopg2\__init__.py", line 126, in connect conn = _connect(dsn, connection_factory=connection_factory, **kwasync) psycopg2.OperationalError The above exception was the direct cause of the following exception: Traceback (most recent call last): File "manage.py", line 21, in <module> main() File "manage.py", line 17, in main execute_from_command_line(sys.argv) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line utility.execute() File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\core\management\__init__.py", line 395, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\core\management\base.py", line 328, in run_from_argv self.execute(*args, **cmd_options) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\core\management\base.py", line 369, in execute output = self.handle(*args, **options) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\core\management\base.py", line 83, in wrapped res = handle_func(*args, **kwargs) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\core\management\commands\makemigrations.py", line 101, in handle loader.check_consistent_history(connection) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\db\migrations\loader.py", line 283, in check_consistent_history applied = recorder.applied_migrations() File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\db\migrations\recorder.py", line 76, in applied_migrations if self.has_table(): File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\db\migrations\recorder.py", line 56, in has_table return self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\utils\asyncio.py", line 26, in inner return func(*args, **kwargs) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\db\backends\base\base.py", line 260, in cursor return self._cursor() File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\db\backends\base\base.py", line 236, in _cursor self.ensure_connection() File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\utils\asyncio.py", line 26, in inner return func(*args, **kwargs) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\db\backends\base\base.py", line 220, in ensure_connection self.connect() File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\db\utils.py", line 90, in __exit__ raise dj_exc_value.with_traceback(traceback) from exc_value File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\db\backends\base\base.py", line 220, in ensure_connection self.connect() File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\utils\asyncio.py", line 26, in inner return func(*args, **kwargs) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\db\backends\base\base.py", line 197, in connect self.connection = self.get_new_connection(conn_params) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\utils\asyncio.py", line 26, in inner return func(*args, **kwargs) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\django\db\backends\postgresql\base.py", line 185, in get_new_connection connection = Database.connect(**conn_params) File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\psycopg2\__init__.py", line 126, in connect conn = _connect(dsn, connection_factory=connection_factory, **kwasync) django.db.utils.OperationalError
关于python使用DBUtils建立连接池连接数据库报错pymysql.err.OperationalError: (2014, 'Command Out of Sync')?
我的爬虫程序使用了DBUtils建立了数据库连接池,目前在windows上运行没有问题,但在centos上运行会出现如下报错,困扰了两天了,特发此贴请教下各位大佬,感激不尽 ``` Process Process-4: Traceback (most recent call last): File "/usr/lib64/python3.6/multiprocessing/process.py", line 258, in _bootstrap self.run() File "/usr/lib64/python3.6/multiprocessing/process.py", line 93, in run self._target(*self._args, **self._kwargs) File "/home/wwwroot/TikTokSpider/spider/main_spider.py", line 358, in run_spider user_spider(sec_uid) File "/home/wwwroot/TikTokSpider/spider/main_spider.py", line 54, in user_spider user_handler(user, db) File "/home/wwwroot/TikTokSpider/public/common.py", line 853, in user_handler db.insert(insert_user, nickname) File "/home/wwwroot/TikTokSpider/public/db_con.py", line 88, in insert return self.__edit(sql, log) File "/home/wwwroot/TikTokSpider/public/db_con.py", line 102, in __edit self.db.begin() File "/pyenvs/spider/lib64/python3.6/site-packages/DBUtils/SteadyDB.py", line 425, in begin begin(*args, **kwargs) File "/pyenvs/spider/lib64/python3.6/site-packages/pymysql/connections.py", line 410, in begin self._read_ok_packet() File "/pyenvs/spider/lib64/python3.6/site-packages/pymysql/connections.py", line 396, in _read_ok_packet raise err.OperationalError(2014, "Command Out of Sync") pymysql.err.OperationalError: (2014, 'Command Out of Sync') ```
django 迁移数据库 报错,求大神指教!
不知道为什么,创建一个新的app,迁移数据库就报错了,报错信息如下,求大神帮帮忙 ![图片说明](https://img-ask.csdn.net/upload/201911/22/1574414856_903196.png)
python2.7下使用smtplib模块发送邮件,报错
有没有大佬知道python2.7下使用smtplib模块发送邮件,报错 ``` 552, '2ee45dcd00e3ada-0fff9 Sender daily sent mail exceed limit ``` 但是用windows环境能正常跑,放到生产环境就报错了嘤嘤嘤,求助
python3中如何在多线程中操作sql server数据库
python37+sql server+win10环境 大概的意思就是,在python中,我开启了n个线程,进入同一个函数,每个线程传递的参数都不一样:如下图: ![图片说明](https://img-ask.csdn.net/upload/201805/18/1526632420_851883.png) 在再每个线程中,将传递过来的参数 update到数据库中,会报一个错误,我想是不是多个线程同时操作一个,导致锁死?如下图: 其中, conn.connect()我只在程序最开始链接了一次, conn.cloese(),和cursor.close()只在程序最结尾执行了一次。 每个线程中我试过在函数开头链接数据库,函数结尾关闭数据库,但是应该是串行的,即第一个线程链接数据库,更新数据,第二个线程等待...等到第一个线程关闭连接后,第二个线程才开始链接... 请高手指点一下,应该如何更改代码? ![图片说明](https://img-ask.csdn.net/upload/201805/18/1526632842_45498.png)![图片说明](https://img-ask.csdn.net/upload/201805/18/1526633241_196099.png)
python使用sqlalchemy连接mysql数据库出错
个人环境是 python2.7,sqlalchemy1.1.6,mysql5.7.18,mysql-python1.2.5。 在pycharm中准备用sqlalchemy连接本地的数据库,连接的代码是: ``` engine = create_engine("mysql+mysqldb://root:root@localhost:3306/test?charset=utf8mb4") DBSession = sessionmaker(bind=engine) session = DBsession() #执行一段查询 res = session.execute("select * from testTable where id = '11' ").fetchall() ``` 然后报错是sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (2019, "Can't initialize character set utf8mb4 (path: C:\\mysql\\\\share\\charsets\\)") 查了一下应该是编码的问题,但是我已经修改过数据库的编码,如下所示: ![数据库编码截图](https://img-ask.csdn.net/upload/201705/13/1494616908_610575.jpg) 求大神指教。
python 使用with con:连接数据库时 报错AttributeError: __enter__怎么解决呢?
# python 使用with con:连接数据库代码如下 import MySQLdb as mdb import sys con=mdb.connect('localhost', 'root', 'mysql', 'test'); with con: cur = con.cursor() # 执行一个查询 cur.execute("SELECT VERSION()") # 取得上个查询的结果,是单个结果 data = cur.fetchone() print("Database version : %s " % data) 运行上面的 程序会报下面的错误: Traceback (most recent call last): File "C:/Users/x'x'x/PycharmProjects/test01/python_mysql/test_mysql.py", line 8, in <module> with con: AttributeError: __enter__ 怎么解决呢?
python读取nc文件 报错问题
``` #!/usr/bin/env python # -*- coding:utf-8 -*- import netCDF4 as nc filename = 'D:\\Python\\python\\广西流域1801.nc' # .nc文件名 f = nc.Dataset(filename) # 读取.nc文件,传入f中。此时f包含了该.nc文件的全部信息 all_vars = f.variables.keys() #获取所有变量名称 print(len(all_vars)) #长度为18 ``` 这是代码快 不会用python 报错了 求助啥意思呀? Traceback (most recent call last): File "D:/Python/Lpython/venv/readNC.py", line 7, in <module> f = nc.Dataset(filename) File "netCDF4\_netCDF4.pyx", line 2321, in netCDF4._netCDF4.Dataset.__init__ File "netCDF4\_netCDF4.pyx", line 1885, in netCDF4._netCDF4._ensure_nc_success FileNotFoundError: [Errno 2] No such file or directory: b'D:\\Python\\python\\\xe5\xb9\xbf\xe8\xa5\xbf\xe6\xb5\x81\xe5\x9f\x9f1801.nc'
python 通过pypyodbc访问access数据库,提示“常见错误 无法打开注册表项”
百度了很多方法,office2010、2007以及2013都试了,数据库驱动也安装了,odbc数据源也添加了,文件权限也改成everyone可读可写了,但是现在还是报错 ![图片说明](https://img-ask.csdn.net/upload/201912/11/1576052346_193768.png) 报错如上图所所示; ``` import pypyodbc import os path = os.getcwd() + "\VoIPNodes.mdb" str = 'Driver = {Microsoft Access Driver (*.mdb,*.accdb)}; PWD="CIT201302"; DBQ="VoIPNodes.mdb"' db = pypyodbc.win_connect_mdb(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};PWD="CIT201302";BDQ={}').format(path) curser = db.cursor() ``` 代码如图所示,请教一下各位
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体
小白如何学习java?
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
羞,Java 字符串拼接竟然有这么多姿势
二哥,我今年大二,看你分享的《阿里巴巴 Java 开发手册》上有一段内容说:“循环体内,拼接字符串最好使用 StringBuilder 的 append 方法,而不是 + 号操作符。”到底为什么啊,我平常一直就用的‘+’号操作符啊!二哥有空的时候能否写一篇文章分析一下呢? 就在昨天,一位叫小菜的读者微信我说了上面这段话。 我当时看到这条微信的第一感觉是:小菜你也太菜了吧,这都不知道为啥啊!我估
"狗屁不通文章生成器"登顶GitHub热榜,分分钟写出万字形式主义大作
GitHub 被誉为全球最大的同性交友网站,……,陪伴我们已经走过 10+ 年时间,它托管了大量的软件代码,同时也承载了程序员无尽的欢乐。 万字申请,废话报告,魔幻形式主义大作怎么写?兄dei,狗屁不通文章生成器了解一下。这个富有灵魂的项目名吸引了众人的目光。项目仅仅诞生一周,便冲上了GitHub趋势榜榜首(Js中文网 -前端进阶资源教程)、是榜首哦
推荐几款比较实用的工具,网站
1.盘百度PanDownload   这个云盘工具是免费的,可以进行资源搜索,提速(偶尔会抽风......) 不要去某站买付费的......   PanDownload下载地址   2.BeJSON 这是一款拥有各种在线工具的网站,推荐它的主要原因是网站简洁,功能齐全,广告相比其他广告好太多了     bejson网站   3.二维码美化 这个网站的二维码美化很好看,网站界面
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车?某胡同口的煎饼摊一年能卖出多少个煎饼?深圳有多少个产品经理?一辆公交车里能装下多少个乒乓球?一个正常成年人有多少根头发?这类估算问题,被称为费米问题,是以科学家费米命名的。为什么面试会问这种问题呢?这类问题能把两类人清楚地区分出来。一类是具有文科思维的人,擅长赞叹和模糊想象,它主要依靠的是人的第一反应和直觉,比如小孩...
碎片化的时代,如何学习
今天周末,和大家聊聊学习这件事情。 在如今这个社会,我们的时间被各类 APP 撕的粉碎。 刷知乎、刷微博、刷朋友圈; 看论坛、看博客、看公号; 等等形形色色的信息和知识获取方式一个都不错过。 貌似学了很多,但是却感觉没什么用。 要解决上面这些问题,首先要分清楚一点,什么是信息,什么是知识。 那什么是信息呢? 你一切听到的、看到的,都是信息,比如微博上的明星出轨、微信中的表情大战、抖音上的段子
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。 背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法 不过,当我看了源代码之后 这程序不到50行 尽管我有多年的Python经验,但我竟然一时也没有看懂 当然啦,原作者也说了,这个代码也是在无聊中诞生的,平时撸码是不写中文变量名的, 中文...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
相关热词 c#处理浮点数 c# 生成字母数字随机数 c# 动态曲线 控件 c# oracle 开发 c#选择字体大小的控件 c# usb 批量传输 c#10进制转8进制 c#转base64 c# 科学计算 c#下拉列表获取串口
立即提问