杂货铺
1.sql中where和having的区别
where是一个约束声名,使用where来约束来之数据库的数据,where是在结果返回之前起作用的,且where中不能使用聚合函数;
having是一个过滤声名,是在查询返回结果集以后对查询结果进行的过滤操作,在having中可以使用聚合函数;
用having就一定要和group by连用,用group by不一定有having;
用having就一定要和group by连用;
2.打印出文件的指定行
sed -n "3p;5p" test #打印出文件的第三行和第五行
sed -n "3,5p" test #打印出文件的第三到第五行
3.selenium使用webdriver.find_element_by_id("kw").send("美女")时报错:UnicodeDecodeError: 'utf8' codec can't decode byte 0xe7 in position 0: unexpected end of data。
解决办法:
方法一:webdriver.find_element_by_id("kw").send(u"美女")
方法二:webdriver.find_element_by_id("kw").send("美女".decode("utf-8"))
4.教你阅读python开源项目源码
https://blog.csdn.net/xiaoxianerqq/article/details/79296708
5.变量指向问题
今天在群里看到一个有趣的问题,不小心就会掉坑里去,问题是这样的:
l = [] a = {"num":0} for i in range(4): a["num"] = i l.append(a) print l
输出结果:
[{'num': 3}, {'num': 3}, {'num': 3}, {'num': 3}]
这结果和预期相差有点大,然后打断点排查,才发现是变量的问题,对于a,除了指向字典中的a,同时也指向了列表中的a,在改变a值时,是全局改的,正确代码应该是这样的:
l = [] for i in range(10): a = {"num": i} l.append(a) print l
6.解读字符串拼装成json,方便其他语言解析数据
file_path = 'json.txt'
file_obj = open(file_path, "r", encoding='UTF-8')
all_lines = file_obj.readlines()
data = {}
key = 1
for line in all_lines:
line_info = line.split(',')
if line_info:
info = {"name": line_info[0], "url": line_info[1].replace("\n", "")}
data[key] = info
key += 1
file_obj.close()
file = open('json.json', 'w', encoding='utf-8')
print (data)
# json.dump(data, file, ensure_ascii=False)
file.writelines(json.dumps(data))
其中,json.txt文本内容格式如下:
111111,http://www.baidu.com
222222,http://www.sina.com
333333,http://www.google.com
444444,http://www.163.com
555555,http://www.qq.com
666666,http://www.y0701.com
7.Windows系统使用命令行查询占用端口程序并杀死进程
(1)查看占用端口进程
netstat -ano | findstr "5037"
(2)查看该进程是哪个程序启动的
tasklist | findstr "21152"
(3)结束进程
taskkill /f /pid 21152
8.构建代理IP池
http://blog.csdn.net/c406495762/article/details/72793480
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步