python实现list去重

1
2
3
4
5
# 先将列表转化为set,再转化为list就可以实现去重操作
list(set(list))

# 用sort即可实现排序
list.sort()
1
quote(item.xpath('@src')[0], safe=string.printable)

python转换编码

按照标准, URL 只允许一部分 ASCII 字符(数字字母和部分符号),其他的字符(如汉字)是不符合 URL 标准的。
所以 URL 中使用其他字符就需要进行 URL 编码。

1
2
3
4
5
6
from urllib.parse import quote
import string

# safe表示可以忽略的字符
# string.printable 表示可打印的字符,见下方 string模块
quote('http://www.obzhi.com/wp-content/themes/Loostrive/timthumb.php?src=http://www.obzhi.com/wp-content/uploads/2019/10/eveoline.jpg&h=200&w=300&zc=1'), safe=string.printable)

String模块中的常量:

string.digits:数字0~9

string.letters:所有字母(大小写)

string.lowercase:所有小写字母

string.printable:可打印字符的字符串

string.punctuation:所有标点

string.uppercase:所有大写字母

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>>> import string  
>>> string.digits
'0123456789'

>>> string.letters
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'

>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'

>>> string.printable
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'

>>> string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

>>> string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

python 网页获取的中文乱码

1
2
3
4
5
6
7
8
9
10
11
from urllib import request

# 获取天气的json
r = requests.get('http://www.weather.com.cn/data/sk/101210101.html')
print(r.content)
#{'weatherinfo': {'city': 'æ\x9d\xadå·\x9e', 'cityid': '101210101', 'temp': '24.8', 'WD': 'ä¸\x9cå\x8c\x97é£\x8e', 'WS': 'å°\x8fäº\x8e3级', 'SD': '81%', 'AP': '1000.3hPa', 'njd': 'æ\x9a\x82æ\x97\xa0å®\x9eå\x86µ', 'WSE': '<3', 'time': '17:50', 'sm': '2.1', 'isRadar': '1', 'Radar': 'JC_RADAR_AZ9571_JB'}}

# 将编码格式改成 utf-8
r.encoding = 'utf-8'
print(r.json())
#{'weatherinfo': {'city': '杭州', 'cityid': '101210101', 'temp': '24.8', 'WD': '东北风', 'WS': '小于3级', 'SD': '81%', 'AP': '1000.3hPa', 'njd': '暂无实况', 'WSE': '<3', 'time': '17:50', 'sm': '2.1', 'isRadar': '1', 'Radar': 'JC_RADAR_AZ9571_JB'}}

python 定时器