1. 基本函数格式
def validate(record):
"""
校验函数
参数: record - 数据记录字典
返回: None表示通过, dict或list表示错误
"""
value = record.get('字段名', '')
if not value:
return {
'message': '错误描述',
'field_name': '字段名',
'field_value': value,
'expected_value': '期望值'
}
return None
2. 身份证校验示例
def validate(record):
id_card = record.get('证件号码', '')
if not id_card:
return None
id_card = str(id_card)
if len(id_card) != 18:
return {
'message': f'身份证号码长度错误: {len(id_card)}位',
'field_name': '证件号码',
'field_value': id_card,
'expected_value': '18位'
}
return None
3. 多条件校验示例
def validate(record):
errors = []
# 检查姓名
name = record.get('姓名', '')
if not name:
errors.append({'message': '姓名为空', 'field_name': '姓名'})
# 检查年龄与劳动力类型
age = record.get('年龄', 0)
labor = record.get('劳动技能', '')
if age and int(age) >= 60 and labor in ['普通劳动力', '技能劳动力']:
errors.append({
'message': f'{age}岁不应为{labor}',
'field_name': '劳动技能',
'field_value': labor
})
return errors if errors else None
4. 使用正则表达式
import re
def validate(record):
phone = record.get('联系电话', '')
if phone and not re.match(r'^1[3-9]\d{9}$', str(phone)):
return {
'message': '手机号格式不正确',
'field_name': '联系电话',
'field_value': phone
}
return None
5. 常用字段名
姓名、证件号码、户编号、与户主关系、性别、民族、文化程度、健康状况、劳动技能、
务工状态、务工时间、务工地点、工资收入、享受低保政策情况、低保金、
享受特困供养政策情况、特困供养金、公益性岗位(月数)、乡、村...