Python 语言基础和序列化:脚本、对象和 JSON 边界

2次阅读
没有评论

Python 很适合写脚本、数据处理、小工具和服务胶水代码。语法简单并不代表可以随便写,尤其是对象、字典、JSON 和文件读写混在一起时,边界不清楚很容易留下隐患。

这篇从工程角度整理几个基础点:脚本入口、数据结构、序列化和错误处理。

脚本入口要清楚

Python 文件既可以被直接执行,也可以被别的模块导入。建议为可执行脚本保留入口:

def main():
    print("run task")

if __name__ == "__main__":
    main()

这样做的好处是:导入模块时不会自动执行任务,测试也更容易写。脚本越长,越应该把核心逻辑拆成函数,而不是全部堆在文件顶层。

字典适合传输,不适合表达所有业务

Python 的 dict 很方便,JSON 也天然像字典。但如果业务字段越来越多,只靠字典会变得难维护。

例如:

user = {
    "id": 1001,
    "name": "zhao",
    "enabled": True,
}

简单脚本可以这样写。复杂一点的逻辑,建议用 dataclass 或明确的模型对象表达结构:

from dataclasses import dataclass

@dataclass
class User:
    id: int
    name: str
    enabled: bool

这样字段更清楚,也方便类型检查和测试。

JSON 序列化要处理类型边界

Python 常用 json.dumpsjson.loads 处理 JSON:

import json

text = json.dumps({"name": "zhao"}, ensure_ascii=False)
data = json.loads(text)

需要注意:不是所有 Python 对象都能直接转 JSON。比如日期、Decimal、自定义对象,都需要先转换成 JSON 支持的字符串、数字、布尔值、列表或字典。

如果写接口、配置或审计日志,最好显式处理这些类型,不要等运行时报 Object of type ... is not JSON serializable

文件读写要指定编码

处理中文内容时,文件读写建议明确编码:

from pathlib import Path

path = Path("note.md")
text = path.read_text(encoding="utf-8")
path.write_text(text, encoding="utf-8")

不要依赖系统默认编码。跨机器、跨系统运行时,默认编码差异会让问题很难复现。

实用结论

Python 写小工具很快,但要长期可维护,仍然需要清晰结构:脚本有入口,业务有模型,JSON 有类型边界,文件读写有编码。

这些习惯不复杂,却能避免很多后期排障。尤其是当脚本从“一次性工具”变成“每天都跑的任务”时,清晰边界比省几行代码更重要。

正文完
 0
bdspAdmin
版权声明:本站原创文章,由 bdspAdmin 于2026-07-03发表,共计1112字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)