类型转换工具 - ConvertUtil¶
由来¶
类型转换是日常开发中最常见的操作之一。ConvertUtil 提供 bytes↔int、通用类型转换、安全字符串转换等常用方法。
方法¶
字节转换¶
from hutool import ConvertUtil
# bytes → int(大端序)
ConvertUtil.bytes_to_int(b'\x00\x00\x01\x00') # 256
ConvertUtil.bytes_to_int(b'\xff') # 255
# int → bytes(大端序)
ConvertUtil.int_to_bytes(256, 2) # b'\x01\x00'
ConvertUtil.int_to_bytes(1, 4) # b'\x00\x00\x00\x01'
ConvertUtil.int_to_bytes(0, 1) # b'\x00'
安全字符串转换¶
# bytes/bytearray 自动解码
ConvertUtil.to_str(b'hello') # 'hello'
# 其他类型使用 str()
ConvertUtil.to_str(123) # '123'
ConvertUtil.to_str(None) # ''
# 自定义编码
ConvertUtil.to_str(b'\xc4\xe3\xba\xc3', 'gb2312') # '你好'
通用类型转换¶
ConvertUtil.convert('123', int) # 123
ConvertUtil.convert(3.14, str) # '3.14'
ConvertUtil.convert('true', bool) # True
ConvertUtil.convert(None, int) # 0
ConvertUtil.convert(None, str) # ''
中文数字转换¶
# 数字转中文
ConvertUtil.number_to_chinese(123) # "一百二十三"
ConvertUtil.number_to_chinese(10001) # "一万零一"
# 数字转中文大写
ConvertUtil.digit_to_chinese(123) # "壹佰贰拾叁"
ConvertUtil.digit_to_chinese(10000) # "壹万"
# 中文转数字
ConvertUtil.chinese_to_number("一百二十三") # 123
ConvertUtil.chinese_to_number("一万零一") # 10001
英文数字¶
# 数字转英文
ConvertUtil.number_to_word(123) # "one hundred and twenty-three"
ConvertUtil.number_to_word(0) # "zero"
中文金额¶
# 中文金额转数字
ConvertUtil.chinese_money_to_number("壹佰贰拾叁元整") # 123.0
ConvertUtil.chinese_money_to_number("叁万零伍拾") # 30050.0
数字简写¶
# 数字简写(千/万/亿)
ConvertUtil.number_to_simple(1234) # "1.2K"
ConvertUtil.number_to_simple(1234567) # "1.2M"
ConvertUtil.number_to_simple(12345678) # "1234.6万"
全角/半角转换¶
# 全角转半角
ConvertUtil.to_dbc("Hello") # "Hello"
ConvertUtil.to_dbc("123") # "123"
# 半角转全角
ConvertUtil.to_sbc("Hello") # "Hello"
ConvertUtil.to_sbc("123") # "123"
表格格式化¶
# 字典转表格字符串
data = [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]
ConvertUtil.dict_to_tabular(data)
# name age
# Alice 30
# Bob 25
# 列表转表格字符串
ConvertUtil.list_to_tabular([[1, 2], [3, 4]], headers=["A", "B"])
# A B
# 1 2
# 3 4
备注
更多方法请参阅 API 参考 文档。