Python--内置模块和开发规范(上)

1. 内置模块

1.1 JSON 模块

核心功能
  • 序列化:Python 数据类型 → JSON 字符串

    复制代码
    import json
    data = [{"id": 1, "name": "武沛齐"}, {"id": 2, "name": "Alex"}]
    json_str = json.dumps(data, ensure_ascii=False)  # 禁用 ASCII 转义
  • 反序列化:JSON 字符串 → Python 数据类型

    复制代码
    data_list = json.loads('[{"id": 1, "name": "武沛齐"}]')
特殊类型支持
  • 自定义编码器:处理 Decimal​、datetime​ 等非默认类型

    复制代码
    class MyJSONEncoder(json.JSONEncoder):
        def default(self, o):
            if isinstance(o, Decimal): return str(o)
            elif isinstance(o, datetime): return o.isoformat()
            return super().default(o)
    
    json_str = json.dumps(data, cls=MyJSONEncoder)
文件操作
  • 写入文件

    复制代码
    with open("data.json", "w") as f:
        json.dump(data, f)
  • 读取文件

    复制代码
    with open("data.json", "r") as f:
        data = json.load(f)

1.2 时间处理模块

time​ 模块
  • 基础功能

    复制代码
    import time
    timestamp = time.time()        # 当前时间戳(秒)
    time.sleep(3)                  # 暂停 3 秒
datetime​ 模块
  • 时间对象操作

    复制代码
    from datetime import datetime, timedelta
    
    now = datetime.now()                          # 本地时间
    utc_time = datetime.utcnow()                  # UTC 时间
    future = now + timedelta(days=7, hours=3)     # 时间加减
  • 格式化与解析

    复制代码
    text = "2023-10-01 12:30"
    dt = datetime.strptime(text, "%Y-%m-%d %H:%M")  # 字符串 → datetime
    formatted = dt.strftime("%Y/%m/%d")             # datetime → 字符串
  • 时间戳转换

    复制代码
    timestamp = dt.timestamp()                    # datetime → 时间戳
    dt_from_ts = datetime.fromtimestamp(1672500000)  # 时间戳 → datetime

1.3 正则表达式(re 模块)

语法要点
  • 基础匹配

    复制代码
    import re
    re.findall(r"\d+", "ID: 123, Name: Alex")     # 匹配数字 → ['123']
  • 分组与命名分组

    复制代码
    match = re.search(r"(?P<year>\d{4})-(?P<month>\d{2})", "2023-10")
    if match:
        print(match.groupdict())  # {'year': '2023', 'month': '10'}
  • 贪婪与非贪婪匹配

    复制代码
    re.findall(r"a.+b", "aabb")       # 贪婪 → ['aabb']
    re.findall(r"a.+?b", "aabb")      # 非贪婪 → ['aab']
常用方法
  • 替换与分割

    复制代码
    re.sub(r"\d+", "X", "ID: 123")    # 替换 → "ID: X"
    re.split(r",\s*", "a, b, c")      # 分割 → ['a', 'b', 'c']
相关推荐
程序猿小D13 分钟前
【完整源码+数据集+部署教程】医疗设备显示器图像分割系统: yolov8-seg-C2f-SCConv
python·yolo·计算机视觉·数据集·yolov8·医疗设备显示器图像分割系统
拾忆,想起15 分钟前
RabbitMQ事务机制深度剖析:消息零丢失的终极武器
java·开发语言·分布式·后端·rabbitmq·ruby
独行soc19 分钟前
2025年渗透测试面试题总结-98(题目+回答)
网络·安全·web安全·adb·面试·渗透测试·安全狮
Derrick__120 分钟前
Python常用内建模块——XML
xml·python
IvanCodes24 分钟前
八、Scala 集合与函数式编程
大数据·开发语言·scala
huangql52030 分钟前
基于前端+Node.js 的 Markdown 笔记 PDF 导出系统完整实战
前端·笔记·node.js
weixin_4341696032 分钟前
【机器学习】 在Jupyter Notebook 中如何指定Python环境
python·机器学习·jupyter
Never_Satisfied2 小时前
在JavaScript / HTML中,浏览器提示 “Refused to execute inline event handler” 错误
开发语言·javascript·html
Never_Satisfied2 小时前
在JavaScript / HTML中,事件监听的捕获和冒泡阶段解析
开发语言·javascript·html
HalvmånEver2 小时前
初学者入门 C++ map 容器:从基础用法到实战案例
开发语言·c++·学习·map