python出现ImportError的一种起因 背景由于导包时形成一个循环,导致导包异常目录结构(不要学我命名,我就写个demo,试一下新语法)orm_learnmodelinit.pymaker_behavior.pydml.pysettings.py报错信息Traceback (most recent call last): File "dml.py", line 7, in <module> from model.maker_behavior import TOtcOperateMode File "
sqlalchemy反射,表反向生成orm结构 方法1sqlacodegen 'mysql+pymysql://root:123456@127.0.0.1:3307/monitor?charset=utf8'方法2some_table = Table("some_table", metadata, autoload_with=engine)some_tableTable('some_table', MetaData(), Column('x', INTEGER(), table=<some_table>), Col
sqlalchemy查询kylin返回结果不全 背景近日发现返回的维度不全,排查了一天,逻辑并没有错误,但是结果就是不全。排查过程在kylin先查询原始的SQL语句,返回结果又40w条数据。但是在程序中查询SQL仅仅返回5w。正好的5w条数据,所以可以判断是数据被截断了,导致有一部分数据被返回,还有一部分数据被截断了,所以没了。解决方法修改kylin的配置。优化自己查询代码,先聚合好再查出来。看到这里你应该会想揍我一顿,因为我选择了方法2,提升了查询效率还减少一部分运算。...
impala.dbapi产生大量连接导致资源不足问题排查 背景需要查询hue的某表进行币价表进行币价折合,日志显示新建了大量的会话,当前的insight只有已通过每日写入一次MySQL处理连接impala连接时间长的问题,和反复新建会话现象不一致。排查原因1、在settings.py文件夹中可以得知impala每一次新建的是cursor对象。而timeout参数只是用于起始连接,对于连接后查询是不做限制的。conn_impala = connect(host='xxx', port=xxx,
对于爬虫的一些思考 最先应该思考的问题稳定性除重爬虫的稳定性由于项目并不会投入太多的时间,所以稳定性能是最终的。稳定性的可以从以下的维度进行考虑:数据量不多的时候采用单线程。异常处理。重试。详细的日志。个人觉得数据量少就是在40小时内遍历全部并且可以爬完的就是小数据量。异常处理主要就是放在请求网站时、入库。而重试主要是用traceback这个库,它的作用是捕捉到特定异常、设定重试间隔的时长、间隔时常的增长策略。如果真的想不到要在什么地方写重试就思考:在断网的情况下会出现什么情况,重试多次以后会
sqlalchemy AttributeError: can‘t set attribute可能的错误原因 在model没有缺少字段的前提下做以下查询def foo(path): imgs = sess.query( Img.url, Img.map_url ) for img in imgs: img.path = path sess.commit()会出现sqlalchemy AttributeError: can't set attribute的情况,同理改成def foo(path):
webargs,restful参数处理 普遍程序员给大家的印象都是穿衣打扮很out,但是他们对于新技术和数码产品的追求绝对是很in的。-----我说的前言:这次用的web框架是Tornado,webargs的中文例子还是挺少的,我起个头,接下来指定有很多抄袭的1 获取参数的基本操作在官网中有两种一种是使用装饰器一种是声明parse实例。既然有两种方式,那就要思考到底哪一种更加的优雅。在restful的风格的大前提,同一个路由路径可能有多种不同的请求方式,例如‘/api/books/’这个接口使用POST请求则对应添加一本新书的操作,.
SQLAlchemy 出现TypeError: unhashable type: ‘dict‘的一种可能性 一、首先是检查对应的model数据类型是否对上了。可能你并不知道可以通过数据库表反向生成model,也有可能是在网上搜索得到结果是:sqlacodegen --tables [数据库名称] --outfile [要写入文件的路径]/[要写入的文件名称].py mysql://[用户名]:[密码]@[数据库host]/[数据库db]?charset=utf8然后报错:zsh: no matches found:然而想反向生成文件只需要打印到控制台即可,不需要写入文件,在终端输入:s.
python dict赋值列表会嵌套一个元祖 一、现象dict["key"] = [{"k1":"v1"},{"k2", "v2"}] 赋值后的结果dict["key"] = ([{"k1":"v1"},{"k2", "v2"}],),前端遍历数据,会把元祖转化成列表。返回前端的就是dict["key"] = [[{"k1":"v1"},{"k2", "v2"}],]]。二、解决办法改变赋值的方式改成dict = {"...
tornado websocket实现后台推送数据 1、长轮询一句话来概括:长轮询就是客户端和服务器端保持连接,相互发信息。2、流程前端发出一个请求。 后端接收到请求后,触发on_message方法(执行write_message("hello"))。 前端收到“hello”触发on_message方法(执行渲染,把hello渲染到页面上)。 后端开始轮询,向前端发消息。 前端接收到信息后不断渲染新的内容。3、代码示例...
爬虫吐槽 1、不要跟老娘说什么bs4什么xpath什么css选择器,傻逼吗?json不香吗?安利直接请求json文件。2、连限频都不会求你不要秀了,怕到人家服务器500只能说你损,403都是活该,还在用sleep?scrapy是不是不好限频?安利用ratelimite。3、错误也不会捕捉也不能重试?安利backoff。4、还可以写成插件,解藕又方便。安利pluginbase。...
mac把python项目部署到ubuntu服务器没有root权限并且做定时任务 1、首先是把自己的项目代码上传到服务器中点击shell,左边点击sftp安全文件传输,右边新建远程连接点击+号添加服务器IP地址,填写用户,点击链接。或者是直接在终端执行以下命令:sftp 【你的用户名】@IP地址然后把什么.git、env、log、存放测试结果、.DS_Store、__pycache__等等的垃圾都不要上传了。put -r 【本地项目文件绝对路径】【存放...
gitlab mergerequest操作 我今天做了一件错事别人叫我mr我直接push了,对不起,我错了,给各位大爷添堵了。不过幸好我把测试做足了。mr流程:新建一个分支,然后把代码commit然后push到新建的分支,而不是push当前的分支否则会把当前分支的东西覆盖。新建一个mr,在mr里面选择将要合并到哪一个分支,并选择要@的人。例子:远程仓库的分支有dev1,dev2, 我当前在本地的dev2分支,我想对handler文件...
水tornado.access:404 GET /static/css/bootstrap.min.css.map 删除最后一行注释即可/*# sourceMappingURL=bootstrap.min.css.map */又水一篇
opencv图像识别车牌 放假前写的代码,pip更新了连注释都不能写,现在看一下真不知道自己写了什么鬼。最邪的是我的能在当前py文件下调用函数生成imread的对象,但是在测试文件就不行,检查过绝对路径和相对路径没有中文,我尝试通过导入imread对象还是None,我纳闷了。所以我决定还是把测试写到同一个地方吧。车牌已经打马赛克。目录1 安装2 代码实现2.1 调整图片2.2 去噪声2.3 Ca...
python实现串口通信 因为店家只给了我两页纸的vc0706通信协议,许多细节我还是不清楚,写得也没有特别优雅,大家就凑合看吧。目录1 硬件设备2 serial安装3 实现串口通信3.1 发现端口3.2 发送命令3.2.1 协议格式3.2.2serial传送的方式3.3 获取版本号(hello world)3.4 复位3.5 照相3.5.1停止当前帧刷新3.5.2...
python安装过程中Retrying (Retry(total=4, connect=None……after connection broken by 'ReadTimeoutError…… 一、报错描述在安装的时候报错:WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443):...