自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(177)
  • 收藏
  • 关注

原创 你设的 retry=3,其实发了 4 次请求

本文实测解析 urllib3 `Retry` 的行为:`total=3`代表最多重试3次,因此总请求数为4;重定向也会消耗同一额度,POST默认不重试,未列入`status_forcelist`的状态码也不会触发重试。文章还说明退避首次等待为0、抖动默认关闭,并给出按错误类型分配额度、仅重试幂等请求及显式开启jitter的配置建议。

2026-10-19 21:15:00 247 1

原创 人少了,工作并没有好找

本文分析香港434个月劳动力与失业率数据,发现劳动力人数减少并未让就业更容易:劳动力较2018年峰值下降5%,失业率却升至4.0%。青年失业率达14.4%,为整体的3.6倍,青年与整体差距四十年来始终超过7个百分点。文章也指出,统计表混合月度与年度频率、人数与同比等口径,分析前须先拆分字段并确认数据定义。

2026-10-19 20:15:00 229 1

原创 骗子是什么时候当上第一名的

本文分析香港2007至2025年被捕人数数据,发现诈骗类被捕人数于2023年首次登顶,2024年达9,319人,2025年虽回落29%,仍居罪类首位;此前榜首由店铺盗窃和其他罪行占据。诈骗被捕者以成年人为主,青少年占比下降。文章也提醒,统计的是被捕人数而非案件数,分析多维数据须纳入警区等隐藏维度,并区分汇总行与细分类,避免覆盖或重复计数。

2026-10-18 21:15:00 421 1

原创 一个 POST 发出去,回来变成了 GET

本文实测拆解 Python `requests` 的四个隐蔽默认行为:请求默认无超时、302可能将POST改为GET并丢弃请求体、默认不重试,以及默认信任代理环境变量,导致本地请求被代理截走。文章给出统一封装Session的做法,建议显式设置超时、检查重定向、仅对幂等请求配置重试,并按场景关闭环境代理。

2026-10-18 20:15:00 795 1

原创 3 个进程写日志丢了 449 行:QueueHandler 的正确用法,和它的性能账

本文实测多进程共用日志文件并各自轮转会静默丢行:3个进程写入900行,最终仅剩451行。改用子进程通过`QueueHandler`入队、主进程由`QueueListener`单点写盘后,900行完整保留。文章还比较队列性能,指出原生`mp.Queue`接近直接写盘,而`Manager().Queue`耗时约6倍,并提醒正确处理进程启动守卫、监听器退出及可序列化字段。

2026-10-17 21:15:00 537

原创 0–4 岁人口最多的一年,是 1963

本文分析香港1961至2026年人口年龄数据,发现0–4岁人口于1963年见顶,20–59岁人口在2014年见顶,而65岁以上人口增长至十八倍;老年人口占比从15%升至20%仅用7年。文章也揭示表中“0”可能代表未调查、指标编码混合人数与比例,且1996年统计口径改变,提醒长周期分析先清理数据并标注口径断点。

2026-10-17 20:15:00 403 2

原创 最热的两个 10 月,就是最近两年:天文台 11 年日频数据实测

本文分析香港天文台总部2015至2025年日均气温,发现2024、2025年是11年中最热的两个10月,均温较前九年高1.22℃。升温主要表现为日均温≥28℃的天数增加,≥30℃高温日则无明显趋势;2026年前八个月均温也暂居样本首位。文章提醒数据仅代表单站、短期样本,且不等同于全年或长期气候结论。

2026-10-16 21:15:00 338 1

原创 成交和报价永远对不上?merge_asof 一行搞定(附四个坑)

本文介绍用 pandas `merge_asof` 将成交与报价按时间就近对齐,避免精确时间戳关联全为空,并解释 backward、forward、nearest 三种方向的业务含义。文章实测排序、键类型、重复时间戳和精确匹配四个常见陷阱,指出方向选错可能造成未来函数,示例中持仓估值相差33%。

2026-10-16 20:15:00 440 1

原创 零售翻倍的那六年,店铺盗窃在 6,500 原地踏步:19 年罪案数据对账

本文对账政府统计处2007–2025共19年的罪案被捕数据(表940-92031)与零售业销货额(表620-67001),得出三个反直觉结论:总被捕人数谷底在2019年而非疫情年,2025年仍比2007年峰值低27.6%;"罪案反弹"主力是非暴力罪(+12.2%),暴力罪几乎原地、青少年占比十八年降六成;零售额翻倍的六年里店铺盗窃始终在6,500人原地踏步,19年相关系数r=-0.035,"零售复苏带动盗窃回升"的流行叙事被数据否掉。作者同时强调口径限制:

2026-10-15 21:15:00 248 1

原创 内容一字不差,指纹对不上:CRLF 行尾的坑不在读端,在写端和 git

本文实测CRLF与LF行尾在各通道的行为:同一内容两种行尾字节数差2、sha256分家,指纹对账、去重、同步前须先统一行尾;反常识结论是Python读端默认免疫——open()与pandas都会把\r\n转成\n,"读不了"应先查写端与传输层;真坑有三:关掉转换后split会留\r尾巴(应用splitlines())、Windows上csv写文件忘设newline=""会写出\r\r\n、git的autocrlf把行尾转换藏进版本库,根治靠.gitattr

2026-10-15 20:15:00 313 1

原创 merge 一下,金额凭空多了三分之一:pandas 对账翻车实测

本文实测 pandas `merge` 的对账风险:一对多匹配会复制行,使样例金额合计从 600 膨胀到 800;默认 inner join 又会静默丢掉未匹配记录。文章介绍用 `validate` 声明预期基数、用 `indicator` 检查匹配去向,并在合并前核对键类型、唯一性和 NaN 语义,避免数据在汇总前悄悄失真。

2026-10-14 21:15:00 535 1

原创 调用外部命令却崩在自己机器上:subprocess text=True 的编码陷阱实测

本文实测 Python `subprocess` 的 `text=True` 编码陷阱:它不仅把输出转成字符串,还会按系统编码解码、转换换行,并用同一编码写入 stdin。外部工具输出 GBK 时,可能触发解码异常,也可能被 `replace` 篡改或被 `ignore` 静默丢弃;stdout 和 stderr 都受影响。文章建议明确指定 `encoding`,或使用二进制模式自行解码,并提醒 Python 3.15 默认编码行为变化可能影响旧代码。

2026-10-14 20:15:00 634 1

原创 你写的「比较 token」函数,正在用 36 纳秒泄露密码:时序攻击实测

本文实测逐字符早退比较会因匹配前缀长度不同而产生时序差异,可能泄露密钥信息。文章分析攻击条件与 Python `==` 的局限,介绍使用 `secrets.compare_digest` 安全比较 API 密钥、签名和令牌,并提醒先编码非 ASCII 字符串、避免外置长度检查及依赖随机延迟防护。

2026-10-13 21:15:00 324 1

原创 黄金周月根本不是零售旺月:263 个月官方数据的三个反常识

本文基于香港政府统计处 263 个月官方数据,分析零售峰值、黄金周季节性及人流与零售的关系。数据显示,十月零售中位数几乎没有季节溢价,2019 年黄金周月更是样本低点;近年过境人流与零售额呈温和负相关。文章同时说明数据口径与滞后限制,提醒判断复苏时先看基期和指标定义。

2026-10-13 20:15:00 731 1

原创 JSON 崩了、指纹分了、列名脏了:都是文件头三个隐形字节

本文复现并解释 UTF-8 BOM(文件头 EF BB BF)导致的“看起来一模一样,但指纹完全不同”问题。文章实测了 JSON、CSV、pandas、open、hashlib 等通道的不同表现:有的自动剥离、有的直接报错、有的悄悄污染列名和内容。结论是,读取外部文件统一用 `utf-8-sig`,写文件避免 BOM,且比较前先统一编码策略。

2026-10-12 21:15:00 216 1

原创 地区白给、性别全靠猜:7,665 条 TikTok 评论的数据走读实录

本文基于 TikTok 评论区原始数据,研究评论者地区、去重逻辑和性别推断的边界。结果显示:`userArea` 是接口原生 ISO 3166-1 alpha-2 字段,覆盖率 100%;去重后 5,639 条评论对应 5,387 个用户,Top 10 国家占比 75%,美国单独占 51.27%。但性别字段不存在,三种推断方式覆盖率仅 14.1%–28.8%,最终只能给出区间而非单点估计。

2026-10-12 20:15:00 616 1

原创 pandas 读 CSV 不报错 ≠ 读对了:四个默认参数翻车实测

`pandas.read_csv` 的默认参数看似“能读”,实则埋了四个常见坑:前导零被吞、NA 被当缺失、千分位变字符串、日期不解析。文章用 4 行脏数据实测,证明默认读取后编号、地名、客流和日期都会产生静默错误;而显式设置 `dtype`、`thousands`、`keep_default_na`、`parse_dates` 后,数据才能真正“读对”。同时提醒 pandas 3.0 的字符串/时间戳 dtype 变化,以及 `na_values` 的默认吞噬清单,强调“零报错 ≠ 读

2026-10-11 21:15:00 772 1

原创 楼市跌了五年,租金却悄悄创了历史新高:RVD 双指数对账

香港楼价跌了近 20%,但租金却创 33 年新高,且已连涨 21 个月,形成“买房跌、租房涨”的显著背离。文章用 RVD 私人住宅售价与租金双指数月度序列,按同一基点归一化对比,发现 2021-08=100 时,售价降至 80.6、租金升至 115.2,五年裂口达 34.6。进一步拆解面积分级,A 类小单位租金创新高,而 E 类大单位售价更稳;租售比从历史低点修复但仍未回到 1990s 传统区间,说明当前是“修复”而非“反转”。

2026-10-11 20:15:00 1190 1

原创 同一份脚本,mac 正常 Windows 乱码:open() 默认编码实测(附 3.15 终局)

本文测试 Python 在 UTF-8/macOS 与 Windows cp936 间的编码行为,发现同一份脚本可能在不同平台出现崩溃或静默乱码;对20,992个CJK汉字做全量往返统计,utf-8写入后cp936读取时崩溃率100%,而cp936写入后utf-8读取崩溃90.9%。文章强调编码要显式指定、跨平台交互需用统一字符集,并说明 Python 3.15 的默认 UTF-8 变化。

2026-10-10 21:15:00 375 1

原创 用 random 生成验证码?我把 100 个全部破解了(100% 命中实测)

本文通过真实实验说明:用 `random.seed(int(time.time()))` 生成验证码的安全性极差,因为种子仅有一天内86,400种可能,攻击者可以枚举种子并构造彩虹表;实测100个验证码全部命中,命中率100%。文章强调 `random` 是可复现伪随机,不适合安全场景,正确做法是改用 `secrets`,并结合 `compare_digest` 和限流措施提升抗猜测能力。

2026-10-10 20:15:00 609 1

原创 日志打了两次、一条没有、还会丢行?logging 三坑实测

本文实测 Python `logging` 的三类常见问题:logger 与 root 的 handler 同时输出会造成双写;第三方库提前触发配置后,`basicConfig` 可能静默失效;多进程普通追加未丢行,但各进程独立使用 `RotatingFileHandler` 会发生轮转冲突。文章梳理了 `propagate`、入口统一配置与 `QueueHandler`/`QueueListener` 等应对方式,帮助区分配置问题和真正的并发风险。

2026-10-09 21:15:00 504 1

原创 港股 44 万亿是顶还是底?Python 对账 66 季:南向资金已占近四成

本文基于 2010Q1 至 2026Q2 港交所季度数据,为港股“44 万亿”补上历史坐标:市值较 2021 年峰值低 17.9%,较 2024 年低点高 43%;南向成交占比升至 39.3%,主板日均成交创历史新高。市值与交易热度讲述不同的市场图景,判断港股变化不能只看市值,也需留意估算口径与数据边界。

2026-10-09 20:15:00 412 1

原创 日志里全是 \uXXXX?json.dumps 四个默认参数的实测账单

本文实测 Python `json.dumps` 的四个默认参数,揭示中文转义增加体积、字典键顺序导致指纹不一致、默认空格增加文件大小,以及 `NaN` 等非标准值可能破坏跨语言解析。还梳理 JSON 往返中的类型变化,并给出日志、接口与哈希场景的参数建议。

2026-10-08 21:15:00 430 1

原创 时间戳凭空早了 8 小时:datetime.utcnow() 弃用实测与漂移复盘

本文通过 Python 3.13.12 实测,复盘 `datetime.utcnow()` 因返回无时区标签的对象而引发的时间漂移、错误换算和比较异常,并给出使用带时区时间、迁移存量代码及将弃用警告纳入测试的实用方案。

2026-10-08 20:15:00 603 1

原创 删掉常开流之后,MCP 怎么中途向用户要确认?MRTR 两次请求实测

本文通过 Python 标准库实测 MCP 的 MRTR 多轮请求机制,展示工具执行中如何通过两次 POST 向用户请求确认并继续处理。文章解析 `input_required`、`inputRequests`、`inputResponses` 与 `requestState` 的作用,覆盖空答案、明确拒绝和确认通过等路径,并提醒生产实现需保护状态锚、每轮重新校验权限。

2026-10-07 21:15:00 473 1

原创 黄金周刷屏的游客照之外,口岸数据里过半是往外走的香港人

本文对比香港居民出境与访客入境月度数据,发现2023年1月至2026年7月连续43个月,居民出境人次均高于访客入境;黄金周月比值中位数为2.21,略低于其他月份。文章还揭示居民出境首要口岸已从机场转为罗湖,并说明跨表核验方法及“人次比”不等于“人数比”的统计边界。

2026-10-07 20:15:00 646 1

原创 今早 23.3 度就喊冷?我翻了 79 年气温记录,香港的秋天平均迟到两周

本文基于香港天文台1947年以来的每日最低气温记录,分析香港秋季降温时间变化。数据显示,10月日最低温十年均值上升约2.5℃,首个低于20℃的日期中位数从1950年代的10月19日推迟至近年的11月1日前后;23.3℃在历史10月中并不算冷。文章同时说明数据滞后、阈值为自定义口径,且不对气温变化成因作归因。

2026-10-06 21:15:00 772 1

原创 subprocess 的 communicate 只能调用一次?管道交互的三坑与一条 64KB 死线

本文通过实测拆解 Python `subprocess` 管道交互的常见陷阱:`communicate()` 每个进程只能调用一次;交互式小消息必须显式 `flush()`,否则可能双向挂起;子进程暂不读取时,写入超过约64KB可能阻塞并引发死锁。文章对比不同通信方式的适用场景,建议所有等待操作设置超时,并注明缓冲区边界受操作系统影响。

2026-10-06 20:15:00 811 1

原创 把 MCP server 搬上 HTTP,我以为要重写一遍,结果协议体一个字节没改

本文将基于 Python 标准库实现的 MCP server 从 stdio 搬到 Streamable HTTP,实测七条请求路径,并对比两种传输的协议消息。结果显示,五条公共路径的协议体逐字节一致,合计1,141字节;HTTP额外开销主要来自请求头。文章还介绍无状态传输的请求头要求、错误码处理及标准库实现中的常见坑。

2026-10-05 21:15:00 396 1

原创 黄金周餐厅天天爆满,收益却三年没涨?Python 对账 222 个月食肆数据

本文基于香港统计处2008年1月至2026年6月的食肆数据,发现全港食肆收益连续三年维持在约1,095亿港元,仍低于2019年峰值;中式餐馆收益份额十年间下降约10个百分点。文章还介绍字段组合识别、占位零剔除和跨表核验方法,提醒客流热闹不等于收益增长。

2026-10-05 20:30:00 461 1

原创 MCP 的 initialize 握手真的没了?67 行标准库实测 2026-07-28 规范

本文依据2026年7月28日的MCP规范,用67行Python标准库代码实现并实测无状态stdio server,覆盖服务发现、工具列表、工具调用及版本错误处理。文章解析 initialize 握手与会话机制的变化,并总结JSON-RPC消息格式、stdout日志隔离和结果字段位置等实现要点,同时说明测试范围与兼容边界。

2026-10-04 21:15:00 831 1

原创 香港人口连续 6 年「入不敷出」?Python 对账 65 年生死月表

本文基于香港统计处1961年至2025年的年度及月度出生、死亡数据,发现自然增长自2020年转负后连续6年未回正,近72个月每月死亡人数均高于活产人数;2025年活产31,053人,为65年最低。文章还核对数据完整性,说明死亡数男女合计与总数存在差异是官方统计口径所致,并提醒自然减少不等于总人口下降。

2026-10-04 20:15:00 845 1

原创 新闻里诈骗满天飞,香港诈骗被捕人数却大跌 29%:19 年罪案表对账

本文用香港政府统计处19年被捕人数数据,对账诈骗类犯罪趋势,发现2024年达9,319人后2025年骤降29.0%,且未成年人占比持续收缩,成年人仍为主力。文章强调“案件数”和“被捕人数”是不同口径,且不同维度存在分层恒等式、修订标记和年级结构变化,提醒在引用新闻或官方数据时先确认指标、时间范围和年龄/性别分层。

2026-10-03 21:15:00 237 1

原创 香港网购占比冲上 14.6% 又跌回 9%?Python 对账 263 个月零售数据

本文对账香港零售总销货值与网上零售销货值数据,发现网购占比从2020年3.3%升至2025年10月14.6%,但峰值后回落至8.7%,显示在线消费存在单月脉冲而非持续上行。作者指出同一字段混合HK$ million、% share和同比变化三种单位,且表格的period格式与官方口径需单独核对,强调引用官方零售数据时必须先拆分口径、检查修订标记和单位,再判断趋势。

2026-10-03 20:15:00 829 1

原创 Python 扫轻铁 68 站(第 4 次):黄金周的周五跑了多少班?

本文基于轻铁68个站的到站预报,对比黄金周周五与周一、周二的班次快照:周五上午统计到494班,610线以73班居首,751P高峰线持续缺席;同日上午复扫25分钟后总量不变,但分线和站点计数有所波动。文章说明统计口径,并提醒对比时控制星期、时段、接口截断范围及恒空站等变量,避免过度解读。

2026-10-02 21:15:00 353 1

原创 香港按揭定息占比 5 个月近 5 倍?Python 对账金管局 116 个月

本文使用金管局住宅按揭统计 API,对账2016年12月至2026年7月共116个月的数据,核验定息按揭占比、转按宗数及金额等新闻说法。结果显示,定息占比升至34.1%,转按宗数的33个月新高可由最近更高值验证,但“连升7个月”与API数据不符。文章还分享新高锚点算法、环比字段换算及新闻数据的核验方法。

2026-10-02 20:15:00 346 1

原创 还在用 python-dateutil 解析日期?我复现了三场事故

本文复现了 python-dateutil 解析日期时的三类风险:缺失字段会随运行日期变化,`fuzzy=True` 可能拼出原文不存在的时间,格式猜测还比显式解析更慢。文章给出性能对比、弃用趋势及安全实践:已知格式使用 `strptime` 或显式 `format`,谨慎启用模糊解析并固定默认值。

2026-10-01 21:15:00 398 1

原创 国庆黄金周是访港高峰吗?Python 对账 22 年访客数据:它只排第 4

本文基于香港统计处2004年至2026年7月的访客数据,分析国庆黄金周是否为访港高峰。结果显示,10月访客占比22年均值为8.7%,仅排第4;约四分之三访客经陆路入境。文章还讲解数据抓取、跨表对账及处理日期、地区名称和统计口径陷阱的方法。

2026-10-01 20:15:00 433 1

原创 香港电梯维护费实测:十年涨 73% 到 93%,而涨幅里混着「楼变高了」

本文实测香港电梯维护价格公告数据,发现住宅电梯十年维护费上涨73%至93%,但涨幅部分来自平均停靠层数变化。文章分析半年公告的发布节奏、住宅与商业分箱差异及缺少样本量的均值局限,强调不能将公告数据插值为月度趋势,也不能忽略协变量漂移、速度分档变化和元数据与内容日期不一致等问题。

2026-09-30 21:15:00 199 1

原创 香港酒店数据实测:入住率冲上 93% 新高,房价却比峰值跌了 12%

本文实测香港酒店入住率、平均房价和房间数三张公开月度数据表,发现入住率峰值93%出现在2025年11月,房价峰值1,646港元却在2023年12月,入住率高并不代表房价高。文章进一步用RevPAR衡量经营表现,指出三表存在列名不一致、整数月份误解析、存量数据连平及约两个月发布时差等问题。

2026-09-30 20:15:00 466 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除