当前位置: 首页 > news >正文

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']
    

相关文章:

  • DeepSeek可实现智能派工,提升售后服务效率
  • ubuntu部署gitlab-ce及数据迁移
  • 【北京迅为】iTOP-RK3568OpenHarmony系统南向驱动开发-第2章 内核HDF驱动框架架构
  • 【容器化】低版本docker拉取ubuntn 22.04镜像启动容器执行apt update提示 NO_PUBKEY 871920D1991BC93C
  • 腿足机器人之十四-强化学习SAC算法
  • 指针的进阶(提高篇)
  • python绘图之灰度图
  • 一个实用的 python 库!
  • 天佐.乾坤袋 基于抽屉式文件存储的NoSql数据库
  • Windows上使用go-ios实现iOS17自动化
  • 点云配准技术的演进与前沿探索:从传统算法到深度学习融合(4)
  • 【Python系列】Python 连接 PostgreSQL 数据库并查询数据
  • 在 IntelliJ IDEA 中启动多个注册到 Nacos 的服务
  • 鸿蒙app 开发中 对于 layoutWeight 的理解
  • SslConnection::SslConnection()详解
  • 迁移过程中,hive元数据字段校对
  • 数字电子电路基础第五章——触发器
  • Unity插件-Mirror使用方法(一)Mirror介绍
  • 【AI深度学习基础】NumPy完全指南入门篇:核心功能与工程实践(含完整代码)
  • 【大数据】ClickHouse常见的错误及解决方式
  • 行业网平台/seo教程免费
  • 国外一个专门做配乐的网站/南京seo网络推广
  • ps做网站对齐技巧/google play商店
  • 高端品牌网站建设策略/推广运营公司哪家好
  • 九江县建设规划局网站/平台推广方式方法是什么
  • 网站设计心的/百度站长统计