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

ops/2025/3/1 23:27:30/

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, timedeltanow = 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']
    

http://www.ppmy.cn/ops/162353.html

相关文章

2025-02-28 学习记录--C/C++-C语言 scanf 中,%s 不需要加

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; C语言 scanf 中&#xff0c;%s 不需要加 & 格式化符号变量类型是否需要加 &原因%s字符数组不需要数组名本身就是指针&a…

夏普比率(Sharpe Ratio):衡量投资风险与收益的黄金标准(中英双语)

夏普比率&#xff08;Sharpe Ratio&#xff09;&#xff1a;衡量投资风险与收益的黄金标准 &#x1f4ca;&#x1f4c8; &#x1f4cc; 什么是夏普比率&#xff1f; 夏普比率&#xff08;Sharpe Ratio&#xff09; 由诺贝尔经济学奖得主 威廉夏普&#xff08;William F. Shar…

使用Docker将ros1自定义消息通过rosjava_bootstrap生成jar包

文章目录 预准备环境rosjava_bootstrap坏消息好消息 环境安装docker安装rosjava_bootstrap仓库rosjava_center仓库修改rosjava_bootstrap代码拉取docker镜像放置自己的自定义消息 启动docker编译 预准备环境 rosjava_bootstrap rosjava_bootstrap是将自定义的ROS消息生成java…

DeepSeek行业应用实践报告-智灵动力【112页PPT全】

DeepSeek&#xff08;深度搜索&#xff09;近期引发广泛关注并成为众多企业/开发者争相接入的现象&#xff0c;主要源于其在技术突破、市场需求适配性及生态建设等方面的综合优势。以下是关键原因分析&#xff1a; 一、技术核心优势 开源与低成本 DeepSeek基于开源架构&#xf…

cuda-12.4.0 devel docker 中源码安装 OpenAI triton

1&#xff0c;准备 docker 容器 下载docker image: $ sudo docker pull nvidia/cuda:12.6.2-devel-ubuntu20.04 创建容器&#xff1a; sudo docker run --gpus all -it --name cuda_LHL_01 -v /home/hongleili/ex_triton/tmp1:/root/ex_triton/tmp1 nvidia/cuda:12.6…

python 网络安全常用库 python做网络安全

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 最近有同学问我&#xff0c;说想用Python写渗透辅助工具&#xff0c;但是却不知道该如何下手&#xff0c;该怎么办。我告诉他&#xff0c;细化渗透测试的过程&…

深度生成模型(二)——基本概念与数学建模

上一篇笔记中提到了端到端模型底层核心采用了深度生成模型&#xff0c;先简单梳理一下 生成式人工智能&#xff08;Artificial Intelligence Generated Content&#xff0c;AIGC&#xff09;经历了从早期基于概率模型和规则系统的方法到现代深度生成模型的跨越式发展 深度神经…

SQL Server 创建用户并授权

创建用户前需要有一个数据库&#xff0c;创建数据库命令如下&#xff1a; CREATE DATABASE [数据库名称]; CREATE DATABASE database1;一、创建登录用户 方式1&#xff1a;SQL命令 命令格式&#xff1a;CREATE LOGIN [用户名] WITH PASSWORD ‘密码’; 例如&#xff0c;创…