python教程技术文章
-
用 json.loads() 的 parse_float 回调把金额 JSON 直接解析为 Decimal,说明默认 float、整数与小数的边界、嵌套字段、异常输入以及后续 JSON 编码的处理方式。337 收藏 -
Python 3.14 的自由线程构建取消了 GIL 的全局串行效果,共享字典、计数器和迭代器不能再靠偶然的执行顺序兜底。本文用一个带锁的共享计数器说明检测运行时、划定临界区、处理扩展兼容和压力验证的完整做法。337 收藏 -
Python asyncio 任务完成后对象仍存活,通常不是垃圾回收失效,而是协程帧、Task 结果、异常回溯或业务容器仍持有强引用。本文用最小复现和诊断代码定位引用链。335 收藏 -
用 Python ContextVar 在 asyncio 异步任务间传递 request_id,讲清 set、get、reset、create_task 上下文复制、copy_context 和日志排查边界。335 收藏 -
Python 3.15 同时引入了面向 free-threaded 构建的 abi3t。本文从兼容目标、Limited API、构建工具和 wheel 文件名四个角度,说明什么时候选 abi3.abi3t,什么时候必须单独构建 cp315t。331 收藏 -
面对百万行 CSV,不要一上来就把文件整体读进内存。本文用同一份订单导出数据比较 csv 流式读取、pandas chunksize 和 SQLite 分批导入,给出按内存、清洗复杂度和后续查询需求选方案的可运行边界。330 收藏 -
用 asyncio.Queue(maxsize) 控制生产者回压,配合 task_done、join 和 Python 3.13 的 shutdown,构建有界且能正常收尾的异步生产者消费者模型。330 收藏 -
functools.singledispatchmethod 可以让同一个类方法按第一个非 self 参数的运行时类型选择实现。本文从注册、调用、装饰器顺序和子类继承四个边界拆开验证,给出适合消息解析与命令分发的落地写法。329 收藏 -
如果在 TensorFlow 训练模型时,val_loss 只在第一个 epoch 正常出现,到了后面的 epoch 却抛出 KeyError: 'val_loss',问题往往不在模型本身,而是验证数据生成器已经被耗尽,且没有被正确重置。更稳妥、也更省心的处理方式,是直接把验证集完整载入内存,从源头327 收藏 -
文章 · python教程 | 1个月前 | 日志 · 并发编程 · Python教程 · 运维排查 · Python 日志轮转 并发写入 logging.handlers.RotatingFileHandler maxBytes backupCount
Python 的 RotatingFileHandler 在多进程写日志时可能出现重复切分、备份文件互相覆盖或大小超限。本文从 maxBytes 与 backupCount 的触发语义出发,给出单进程验证、并发边界、收敛方案和上线检查清单。327 收藏 -
Python zoneinfo 抛出 ZoneInfoNotFoundError 时,优先检查系统时区数据库和 tzdata 依赖,再处理 PYTHONTZPATH。本文给出 Windows、Linux 容器和自定义目录的部署清单。326 收藏 -
文章 · python教程 | 4星期前 | JSON · Python教程 · 异常排查 · Python json.loads JSONDecodeError lineno colno pos JSON排错
Python 解析多行 JSON 报错时,JSONDecodeError 的 lineno 和 colno 是从 1 开始的行列坐标,pos 是 doc 中的 0 起始偏移。本文用 splitlines() 还原出错行,说明换行、空白和 Unicode 字符带来的定位边界,并给出可复用的诊断函数。326 收藏 -
Python sqlite3 批量写入时,提交和回滚的关键是先划定事务边界:整批导入用连接上下文管理器,分批导入就按批次提交并只回滚当前批次。325 收藏 -
拆开 Python sqlite3.Connection.backup 的 progress 回调,解释 status、remaining、total 的含义,并给出进度计算、批量大小和资源回收的实用写法。325 收藏 -
使用 ContextVar 保存请求级字段,再通过 logging.Filter 注入 LogRecord,解决并发请求日志串值、Formatter 字段缺失和线程复用清理问题。324 收藏