目录
类型转换
转换成为整数
转换成为浮点数
转换成为字符串
转换成为布尔值
字符串转换为数字
数字转换为字符串
字符串转换为日期
日期转换为字符串
其他类型转换
类型转换
当你在编写Python爬虫时,类型转换是一个常见的操作,因为你经常需要处理从网页中提取的数据,将其转换为适合你处理的类型。在本文中,我们将深入探讨Python中的类型转换,包括字符串转换为数字、日期,以及其他一些常见的类型转换。
函数 | 说明 |
int(x) | 将x转换为一个整数 |
float(x) | 将对象 x 转换为字符串 |
str(x) | 将对象 x 转换为字符串 |
bool(x) | 将对象x转换成为布尔值 |
转换成为整数
print(int("123")) # 123 将字符串转换成为整数
print(int(123.78)) # 123 将浮点数转换成为整数
print(int(True)) # 1 布尔值True转换成为整数是 1
print(int(False)) # 0 布尔值False转换成为整数是 0
# 以下两种情况将会转换失败
'''
123.456 和 12ab 字符串,都包含非法字符,不能被转换成为整数,会报错
print(int("123.456"))
print(int("12ab"))
转换成为浮点数
f1 = float("12.34")
print(f1) # 12.34
print(type(f1)) # float 将字符串的 "12.34" 转换成为浮点数 12.34
f2 = float(23)
print(f2) # 23.0
print(type(f2)) # float 将整数转换成为了浮点数
转换成为字符串
str1 = str(45)
str2 = str(34.56)
str3 = str(True)
print(type(str1),type(str2),type(str3))
转换成为布尔值
print(bool(''))
print(bool(""))
print(bool(0))
print(bool({}))
print(bool([]))
print(bool(()))
字符串转换为数字
在爬虫中,你经常需要将从网页中提取的数字数据转换为整数或浮点数,以便进行数值计算或比较。你可以使用**int()
和float()
**函数来实现这一转换。
num_str = "123"
num_int = int(num_str)
print(num_int) # 输出:123
float_str = "3.14"
num_float = float(float_str)
print(num_float) # 输出:3.14
数字转换为字符串
有时候,你可能需要将数字转换为字符串,比如将爬取的数字数据保存到文件或数据库中时。你可以使用**str()
**函数将数字转换为字符串。
num_int = 123
num_str = str(num_int)
print(num_str) # 输出:"123"
num_float = 3.14
float_str = str(num_float)
print(float_str) # 输出:"3.14"
字符串转换为日期
当你从网页中提取日期数据时,通常会得到一个字符串表示的日期,你可以使用**strptime()
**方法将其转换为Python的日期对象。
from datetime import datetime
date_obj = datetime.now()
date_str = date_obj.strftime("%Y-%m-%d %H:%M:%S")
print(date_str) # 输出:当前日期和时间的字符串表示
日期转换为字符串
如果你需要将日期对象转换为特定格式的字符串,可以使用**strftime()
**方法。
from datetime import datetime
date_obj = datetime.now()
date_str = date_obj.strftime("%Y-%m-%d %H:%M:%S")
print(date_str) # 输出:当前日期和时间的字符串表示
其他类型转换
除了上述类型转换外,你可能还会遇到其他类型的转换需求。比如将列表转换为字符串、字符串转换为列表,以及将字典转换为字符串、字符串转换为字典等。你可以使用**join()
、split()
、json.dumps()
和json.loads()
**等方法来实现这些转换。
# 将列表转换为字符串
list_data = ["apple", "banana", "cherry"]
str_data = ", ".join(list_data)
print(str_data) # 输出:"apple, banana, cherry"
# 将字符串转换为列表
str_data = "apple, banana, cherry"
list_data = str_data.split(", ")
print(list_data) # 输出:['apple', 'banana', 'cherry']
# 将字典转换为字符串
dict_data = {"name": "Alice", "age": 30}
str_data = json.dumps(dict_data)
print(str_data) # 输出:'{"name": "Alice", "age": 30}'
# 将字符串转换为字典
str_data = '{"name": "Alice", "age": 30}'
dict_data = json.loads(str_data)
print(dict_data) # 输出:{'name': 'Alice', 'age': 30}