Skip to content

Python 第一课:把客户名单变成可检查的数据

示例文件:customer_list_check.py
最后核验:2026-08-02

本文从一份客户名单开始,说明变量、字符串、列表和字典怎样共同表达真实业务数据,并把数据质量规则落成可运行的代码。

这篇解决什么问题

一张客户名单里常见字段包括姓名、手机号、城市、来源、最近联系时间。手工检查时,最容易漏掉三类问题:

  • 关键字段为空,例如手机号为空。
  • 同一个字段写法不统一,例如“官网”“网站”“Web”混在一起。
  • 统计依赖人工筛选,例如想知道每个来源有多少客户。

Python 的第一步不是学习所有语法,而是把这张表变成程序可以处理的数据。

核心判断

这一集的核心判断是:

text
变量:给一个值起名字
字符串:先把姓名、手机号、城市当文本处理
字典:保存一位客户的多个字段
列表:保存一批客户
规则:把“缺手机号”变成自动检查

这几个概念放在一起,才构成一个真实动作:检查客户名单。

一个最小客户名单

先看三位客户:

python
customers = [
    {"name": "李雷", "phone": "13800000001", "city": "上海", "source": "官网"},
    {"name": "韩梅梅", "phone": "", "city": "杭州", "source": "展会"},
    {"name": "王芳", "phone": "13900000003", "city": "", "source": "官网"},
]

这里每一行都是一个字典。namephonecitysource 是字段名;右边的内容是字段值。

多位客户放进 customers 列表后,程序就可以逐个检查。

检查缺手机号

python
missing_phone = []

for customer in customers:
    if not customer["phone"]:
        missing_phone.append(customer)

print("需要补手机号的客户:")
for customer in missing_phone:
    print("-", customer["name"], customer["city"])

这段代码只做一件事:如果客户的手机号为空,就加入 missing_phone

它背后的业务含义是:手机号是后续回访链路的关键字段,不能为空。

顺手统计来源

python
source_count = {}

for customer in customers:
    source = customer["source"]
    source_count[source] = source_count.get(source, 0) + 1

print("客户来源统计:")
for source, count in source_count.items():
    print("-", source, count)

source_count 也是一个字典,但它保存的不是一位客户,而是“来源 -> 数量”的统计结果。

当程序读到一位官网客户,就把官网数量加一;读到一位展会客户,就把展会数量加一。

完整示例

把完整代码保存为 customer_list_check.py 后,可直接运行:

bash
python3 customer_list_check.py

预期会输出两类结果:

  • 需要补手机号或城市的客户。
  • 按来源汇总的客户数量。

迁移到自己的表格

把这段逻辑换成自己的业务时,按四步改:

  1. 确认字段名:例如姓名、手机号、城市、来源是否和表头一致。
  2. 确认关键字段:哪些字段为空会影响后续业务。
  3. 确认统计口径:按来源、城市、等级还是销售人员统计。
  4. 确认输出方式:打印到屏幕、写入 CSV,还是交给下一步脚本。

常见误区

误区后果修正
把手机号当数字前导零、区号和格式信息可能丢失手机号先按字符串处理
字段名随手写后续规则读不懂,也容易拼错使用清楚稳定的英文 key
规则写在脑子里每次人工判断都可能不一致把规则写成 if
只看总人数看不到数据质量问题同时输出异常名单和统计

读完之后能完成什么

你应该能做到:

  • 读懂一位客户为什么可以用字典表示。
  • 读懂一批客户为什么可以放进列表。
  • 修改“缺手机号”规则,改成检查缺城市或来源为空。
  • 运行示例脚本,看到待处理客户和来源统计。

继续学习

别急,先让缓存热一下。