自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 python之字符串替换的几种方法

1、方法一:字符串替换格式化字符 tmp = "test %s, owner %s" %("20211009", "小二黑") tmp = "test {}, owner {}".format("20211009", "小二黑") 2、方法二:字符串替换命名的格式化字符 tmp = "test %(date)s, owner %(name)s" %{"name":"小二黑", "date":"20211009"} 3、方法三:使用string中的Template方法替换命名的格式化字符

2021-10-09 20:11:08 5899

原创 linux之检查服务是否可访问/启动成功

有两种方法:可通过ping xxx、telnet xxx port两个命令来检查说明:ping、telnet二者区别ping主要用来检查网络连通性telnet主要用来检查指定ip、端口port是否可用方法一:ping xxx说明:xxx可为域名,也可为ip举例,若出现以下内容,则该服务启动成功$ping www.test.comPING www.x.xxxx.com (xxx.xx.xxx.xx): 56 data bytes64 bytes from xxx.xx.xxx.xx: i

2021-10-08 20:20:50 1850

原创 python之一行命令使文件json格式化

背景:一个文件是dict,但是内容未格式化展示,阅读起来非常困难解决:使用python -m json.tool即可解决示例:cat xxx| python -m json.tool具体示例如下:$cat test_json{"a":"b","c":"daakkfff","cdfga":"cvghss"}$cat test_json | python -m json.tool{ "a": "b", "c": "daakkfff", "cdfga": "cvghss"}

2021-10-08 19:51:13 634

原创 python之json.loads()报错ValueError: No JSON object could be decoded解决

问题:json.loads(xxx)后报错ValueError: No JSON object could be decoded原因:注意是unicode编码和'单引号问题引起解决:方法一:将xxx先作字符串转化xxx.replace("u", "").replace("'", '"'),然后再json.loads(xxx.replace("u", "").replace("'", '"'))即可方法二:使用Python内置函数eval(expression[, globals[, locas]]解

2021-09-10 12:04:11 9077

原创 python之quote报错*** KeyError: u‘\uxx‘解决

问题:urllib.quote(xxx)运行后报错*** KeyError: u'\uxx'原因:看下xxx类型:<type 'unicode'>,而urllib.quote(params)中的params就是字符串,只能猜测该字符串的编码不符合要求,所以对xxx进行编码解决:urllib.quote(xxx.encode("utf-8"))或者urllib.quote(str(xxx))示例如下:import urllib xxx = u'[{"test":"测试"}]'

2021-09-04 17:59:19 1521

原创 python之urlencode报错*** TypeError: not a valid non-string sequence or mapping object解决

问题:urllib.urlencode(xxx)运行后报错*** TypeError: not a valid non-string sequence or mapping object解决:既然报错TypeError,看下xxx类型:<type 'list'>,而urllib.urlencode(params)中的params需要为字典对象示例如下:>>> import urllib>>> xxx = [{"a":"b"}]>>>

2021-09-04 17:47:01 9218

原创 linux之软链报错解决

方法:ln -s 源文件 目标文件问题:1、报错ln: /Users/xxx: File exists解决:说明源文件或者目标文件已存在,若还需要将文件备份,或者新起一个文件名2、在当前目录下找不到软链解决:1.在要创建软链的目录下找创建,即要在`目标文件所在目录中`执行该命令2.检查源文件是否已存在,要求:源文件已存在,而目标文件不存在

2021-08-29 18:58:32 3040

原创 linux之curl get、post

GET请求POST请求 - 增加`-d`给到参数即可,eg:`curl 'http://127.0.0.1:5028/test' -d 'action=post'` 说明:一般此时使用的是`request.form`接收参数,比如`request.form["action"]` - 服务器若接收的是`json`类的参数,则需增加`HEADER`,`-H 'Content-Type:application/json'`,eg:`curl 'http://127.0.0.1:5028/tes

2021-08-22 16:09:41 166

原创 python之list元素两两组合、多个list元素多种组合,即笛卡尔积

问题:想要一个list中元素的两两组合、多个list元素的各种组合解决:利用`itertools.product(*iterables, repeat=2)`求笛卡尔积即可说明:笛卡尔积是两个集合`x`、`y`的笛卡尔积,表示为:`x`× `y`,结果是:第一个对象是`x`的成员,第二个对象是集合`y`中的任一元素,eg:`x=(x1,x2)`,`y=(y1,y2)`,则`x` × `y`=`[(x1,y1),(x1,y2),(x2,y1),(x2,y2)]`from itertools import

2021-08-18 19:47:47 20303 3

原创 python之dict打印

打印dict:key、value,eg:dict.items()、dict.iteritems()说明:dict.items()和dict.iteritems()区别,dict.items()返回的是一个列表一次性给出所有值dict.iteritems()返回的是一个迭代器需要通过for循环遍历,每次取出一个一般在数据量比较大时,使用`iteritems()`,效率较高打印dict:所有key,dict.keys()打印dict:所有values,dict.values()

2021-08-18 16:37:37 2239

原创 python之list排序

方法一:用list的sort()方法排序,eg:list.sort()方法二:用sorted函数的key=参数排序,eg:sorted(list)举例说明>>> s = [1,4,3,5]>>> sorted(s)[1, 3, 4, 5]>>> s.sort()>>> print s[1, 3, 4, 5]>>> sorted(s)[1, 3, 4, 5]>>> s.sort(r

2021-08-17 16:32:35 93

原创 python之调试方法:断点

问题:linux中运行程序的时候,有错误,需要不断调试查找问题,但是总不能每个地方都打个log解决:在程序中通过python自带的pdb库import pdb pdb.set_trace()插入断点,然后启动debug,可以任意打出需要查看的参数、执行相关命令等具体示例如下:准备测试脚本:pdb_test.pyimport urllibdef func(query): return urllib.quote(query)if __name__ == "__main__":

2021-08-12 17:47:46 1966

原创 mac之强制退出程序方法

问题:程序卡死,无法退出解决:打开【强制退出应用程序】窗口方法一:快捷键command+option+esc打开【强制退出应用程序】窗口方法二: 左上角【苹果】图标选中【强制退出】打开【强制退出应用程序】窗口选中要退出的程序点击右下角【强制退出】即可示例图如下...

2021-08-12 17:29:26 3027

原创 python之获取当前时间、今天、昨天等

当前时间:datetime.datetime.now()今天:方法一:datetime.date.today()方法二:str(datetime.datetime.now())[:10]昨天:方法一:datetime.date.today() + datetime.timedelta(days=-1) 方法二:str(now + datetime.timedelta(days=-1))[:10]

2021-08-10 20:59:17 661

原创 sql之insert into和insert overwrite区别

insert into和insert overwrite均可以将数据保存到对应表中,二者区别:insert into:直接向表中插入数据insert overwrite:先清空表中的原有数据,再向表中插入数据

2021-08-10 20:44:49 8256

原创 Python、Java的一些区别

共同点:二者都是面向对象的编程语言二者都是解释型语言说明:解释型语言释义,程序不需要编译,而是在运行时一句一句翻译成机器语言,每运行一次都要翻译一次,所以效率相比较低不同点:Python是弱类型语言,而Java是强类型语言说明:强类型语言:变量的使用要严格符合定义,同时变量必须先定义后使用Python一般用于爬虫、Web开发等,而Java一般用于安卓、ios开发附:python库非常丰富,简单易上手,非常多的测试开发职位中会写到熟悉python优先

2021-08-10 20:20:57 184

原创 python之连接列表的常用方法

问题:多个字符串split后的连接解决:方法一直接使用+,即list1+list2str1="k=1&k2=2&k3=3"str2="x=1\tx2=2\tx3=4"str1.split("&") + str2.split("\t")['k=1', 'k2=2', 'k3=3', 'x=1', 'x2=2', 'x3=4']方法二利用extend()函数,即list1.extend(list2),该函数可在列表末尾一次性追加另一个列表中的多个值

2021-08-06 19:14:06 290

原创 python之删除list中所有空元素:一行语句搞定

问题:有些字符串通过split分割后会产生空元素解决:利用`filter(function, list)`函数,具体为`filter(lambda x:x, list)`说明:`filter()`函数过滤掉list中不符合条件的元素,返回符合条件的元素组成的新列表filter(lambda x:x, str.split(" "))['61', '6', '0.098', '11.541']

2021-08-05 19:56:06 2361

原创 python之判断一个字符串是否在另一个字符串中

问题:判断一个字符串是否在另一个字符串中解决:方法一利用方法in,eg:str1 in str2,若存在,则返回True,否则返回False方法二利用方法find,eg:str2.find(str1),若存在,则返回该字符串的位置,否则返回-1示例如下>>> str1='test'>>> str2='123test456test'>>> str3='yes>>> str2.find(str1)3>&gt

2021-08-05 16:19:39 5985

原创 python之字符串左对齐

问题:一行有多个字符串输出时,多行之间显示比较杂乱预期:每一行都能左对齐清晰显示解决:利用python的ljust(width[, char])方法,该方法返回一个左对齐,并且使用指定字符填充至指定长度的新字符串说明:ljust(width[, char])其中char是可选项,但是只能为字符;若未填,则默认为空格

2021-08-02 17:13:40 2149

原创 python之判断变量是否定义

问题:判断一个变量是否已定义解决:方法一locals()以字典类型返回当前调用位置的全部局部变量,判断该变量是否在locals()中即可解决方法二vars([object])以字典类型返回对象object的属性和属性值说明:若object为空,则返回当前调用位置的属性和属性值,功能同locals()>>> vars(){'a': 5, 'c': 1, 'b': 6, 'd': '\xe5\xb0\x8f\xe7\xba\xa2', '__builtins__': <module '__b

2021-08-01 11:06:52 1162 2

原创 linux之重定向标准输出和标准错误

linux的标准输入、输出:标准输入:stdin,对应文件描述符0标准输出:stdout,对应文件描述符1标准错误:stderr,对应文件描述符2说明:stdout、stderr默认都会显示在终端上,一般情况,若不指定输出,只会输出标准输出>>># 标准输出重定向到新文件`xx.log`>>>python test.py > xx.log>>># 标准输出和标准错误追加到重定向到新文件`xx.log`中>>>python test.py >> xx.log 2>&1

2021-07-30 22:12:35 546

原创 python之md5加密

方法:使用hashlib.md5实现说明:md5加密不可逆,无法解密所有字符串生成的md5都是等长的,都是32位示例如下:>>> import hashlib>>> # 创建MD5对象>>> md5 = hashlib.md5('https://www.doc88.com/p-287604007520.html') >>> # 获取加密后的字符串>>> md5.hexdigest()'55d9c

2021-07-26 20:25:22 284

原创 python之url编码常用函数urlencode、quote区别

urlencode将字典参数转化为url查询字符串示例:import urllibd = {"a":1, "b":2}urllib.urlencode(d)'a=1&b=2'quote将单个字符串编码urllib.quote('1/2&3 ', safe='/') urllib.quote_plus斜杠/被编码为%2F;safe是指定某字符不urlencode,默认是空;该方法会将空格转换为+

2021-07-14 19:00:21 1284

原创 python之时间处理的常用方法

1. 字符串转换为时间类型print datetime.datetime.strptime("2021-07-09 15:50:59", '%Y-%m-%d %H:%M:%S')2.时间戳转换为指定的日期格式 - `datetime.datetime.fromTimestamp()`需要以秒为单位的时间戳 - 时间戳整数位一般长度为10位,单位为秒;若超过10位,单位非秒:比如毫秒:13位,微妙:16位3. 几天前/后的时间4. 求时间差的两种方法

2021-07-09 17:56:50 280

原创 python之解决找不到模块问题

一. 问题:运行报错,找不到本地文件及模块、自定义模块,报错示例如下$/home/tops/bin/python xxx.pyTraceback (most recent call last): File "xxx.py", line 22, in <module> from xxx.xxx import xxxImportError: No module named xxx.xxx二. 原因:import模块默认会从PYTHONPATH里寻找,但是当前要import的文件

2021-07-08 10:15:28 7627 1

原创 sql 插入、更新表数据

插入数据insert into <表名> values (<值1>,<值2>,<...>);insert into <表名> (<列1>,<列2>,<...>) values (<值1>,<值2>,<...>);更新数据update <表名> set <列名称>=<新值> where <列名称>=<某值&g.

2021-07-07 20:29:28 260

原创 sql alter增、删、改字段

1. 增加字段alter table <表名> add column <字段名称> Default Null; 2. 删除字段alter table <表名> drop column <字段名称>; 3. 修改表字段名称alter table <表名> change <字段名称> <字段新名称> <字段类型>; 4. 修改数据库字段类型alter table <表名> modify column <列名> <字段新类型>; --比如字段新类型mediumtext

2021-07-07 20:08:28 350

原创 数据库登录、查询命令

1. 登录mysql mysql> mysql -h host -u 用户名 -p密码 2. 改变当前操作数据库 use 数据库名; 3. 查询数据库中所有表 show tables; 4. 查询表中所有字段 show fields from 表名; 5. 查看索引 show index from 表名; 6. 查看注释 show full columns from 表名;

2021-07-07 12:18:28 235

原创 sql 删除表、删除/清空数据方法

一. 删除表1. 方法一通过`表名`删除drop table tb1;2. 方法二通过`数据库.表名`删除二. 删除/清空表中全部数据1. 方法一 通过`delete`删除,优点:数据可恢复,缺点:速度慢delete from 表名;2. 方法二 通过`truncate`删除,优点:速度极快,缺点:数据不可恢复truncate table 表名;三. 删除表中部分数据 1. 通过指定条件删除delete from tb1 where name='测试';delete from

2021-07-07 09:54:48 79699 1

原创 sql 将字符串格式的时间转换为datetime时间格式

问题:字符串’2021-06-25 03:02:01’格式的时间需要转换为时间格式解决:利用cast()函数将字符串转化为datetime时间格式说明:cast(expression as type):将表达式的结果转换成目标类型,例如cast(‘1’ as bigint)将字符串的’1’转成整数类型的1,若转换不成功或者不支持的类型转换会发生异常示例入下select cast('2021-06-25 03:02:01' as datetime);...

2021-06-26 21:47:47 6434

原创 sql 调试函数、单条语句的方法

问题:有些函数、语句的执行效果希望能快速看到运行结果解决:使用`select`方法即可达到预期,即`select xxxxxxx`示例如下:例1:select cast('1' as bigint);例2:select if('a' is not null, 'b', 'c');

2021-06-26 10:49:45 391

原创 sql order by后结果不对原因

问题:按一个字段order by排序后倒序显示,结果和预期不符,明明有大的数值却在下面,举例如下姓名成绩小红99小花18686原因:很可能成绩字段使用的数据类型非数值型,而是字符型解决方法:方法一改变原始数据类型,修改表对应列字段的字符型string为bigint或者其他需要的类型方法二在select时利用cast(expression as type)函数改变数据类型示例如下: select `day` ,name ,score gr

2021-06-26 10:36:43 1525

原创 sql with as语法

with as的作用:可方便的定义一个临时表提高sql语句的可读性提高整体的查询速度示例如下:定义1个临时表with as table1 ( select * from testtabel1 where condition)select a,b,c from table1;定义多个临时表with as table1 ( select * from testtabel1 where condition),table2 ( select * from testtabe2 where

2021-06-23 20:05:36 362

原创 sql语句执行结果不对调试思路

sql group by后的值不对,和预期不符,从以下几个方面查找原因:语句本身将group by的字段单拿出来拆开看检查sql的逻辑限制条件是否准确示例如下:SELECT a ,if(b is not null, condition1, '') AS bb ,count(if(condition2),1,NULL))FROM table1GROUP BY a,bb;可能的原因:if(b is not null, condition1, '') AS bb这条语句判断逻辑有问题

2021-06-21 14:42:46 376

原创 python之UnicodeEncodeError: ascii codec can’t encode/decode ...

问题:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)、UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)原因:python自动解码,未指明解码方式,sys.setdefaultencoding('utf-8')

2021-06-15 18:17:36 3622

原创 python之字典dict:明明有key,但是却报错KeyError

问题:字典从文件中读出,字典中key含中文,明明有key,但是却报错KeyError:key不存在预期:取出对应key的value解决:将key前加上u,对key进行unicode编码说明:从文件中读出的dict,其key被unicode编码了>>> dict["小红"]Traceback (most recent call last): File "<stdin>", line 1, in <module>KeyError: '\xe5\xb0\x8f\xe7\xba\xa2'

2021-06-15 17:52:49 12475 2

原创 python之解决字典打印的顺序和从文件读出的字典顺序不一致问题

问题:文件中保存的是字典,在运行脚本中读出打印的时候和文件中不一致预期:文件中和脚本中打印的字典是一致的顺序解决:利用json模块loads函数的object_pairs_hook(有序键值对)参数,并将object_pairs_hook赋值为collections模块中的有序字典OrderedDict。运行脚本 f = open("test.txt", "r") r = f.read() print json.loads(r, object_pairs_hook=OrderedDict)

2021-06-14 16:30:23 1678

原创 python之json数据格式化输出方法

问题:json格式数据直接print打印无格式,在数据量较多时,不便于人眼高效找到数据预期:json数据格式化输出,一行一个key、value解决:使用json模块dumps函数的参数indent示例如下dict = {"a": 4, "c": 1, "b": 3, "d": 2}print dict{'a': 4, 'c': 1, 'b': 3, 'd': 2} import jsonprint json.dumps(dict, indent=4)

2021-06-14 16:27:07 3229

原创 python之字典按照key赋值顺序输出:让字典有序

问题:字典每次print出的顺序和赋值时给定的key值顺序不一样(字典打印顺序和创建顺序不一致),但是有时需要保持字典key的顺序性预期:规定字典key的顺序,让字典按照赋值顺序输出解决:利用模块collections将字典定义为有序字典后再依次赋值import collectionsdict = collections.OrderedDict()示例如下:dict = {}dict["小红"] = 4dict["小花"] = 1dict["小黄"] = 2dict["小白"] =

2021-06-13 14:24:47 2848

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除