# -*- coding: utf-8 -*-
# 统一社会信用代码中不使用I,O,Z,S,V
SOCIAL_CREDIT_CHECK_CODE_DICT = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9,'A': 10, 'B': 11, 'C': 12, 'D': 13, 'E': 14, 'F': 15, 'G': 16, 'H': 17, 'J': 18, 'K': 19, 'L': 20, 'M': 21, 'N': 22, 'P': 23, 'Q': 24,'R': 25, 'T': 26, 'U': 27, 'W': 28, 'X': 29, 'Y': 30}
# GB11714-1997全国组织机构代码编制规则中代码字符集
ORGANIZATION_CHECK_CODE_DICT = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9,'A': 10, 'B': 11, 'C': 12, 'D': 13, 'E': 14, 'F': 15, 'G': 16, 'H': 17, 'I': 18, 'J': 19, 'K': 20, 'L': 21, 'M': 22, 'N': 23, 'O': 24, 'P': 25, 'Q': 26,'R': 27, 'S': 28, 'T': 29, 'U': 30, 'V': 31, 'W': 32, 'X': 33, 'Y': 34, 'Z': 35}class CreditIdentifier(object):def CreateC9(self, code):# 第i位置上的加权因子weighting_factor = [3, 7, 9, 10, 5, 8, 4, 2]# 第9~17位为主体标识码(组织机构代码)organization_code = code[8:17]# 本体代码ontology_code = organization_code[0:8]# 生成校验码tmp_check_code = self.gen_check_code(weighting_factor, ontology_code, 11, ORGANIZATION_CHECK_CODE_DICT)return code[:16] + tmp_check_codedef getSocialCreditCode(self, code):code = self.CreateC9(code[:16])# 第i位置上的加权因子weighting_factor = [1, 3, 9, 27, 19, 26, 16,17, 20, 29, 25, 13, 8, 24, 10, 30, 28]# 本体代码ontology_code = code[0:17]# 计算校验码tmp_check_code = self.gen_check_code(weighting_factor, ontology_code, 31, SOCIAL_CREDIT_CHECK_CODE_DICT)return code[:17] + tmp_check_codedef gen_check_code(self, weighting_factor, ontology_code, modulus, check_code_dict):total = 0for i in range(len(ontology_code)):if ontology_code[i].isdigit():total += int(ontology_code[i]) * weighting_factor[i]else:total += check_code_dict[ontology_code[i]] * weighting_factor[i]C9 = modulus - total % modulusC9 = 0 if C9 == 31 else C9C9 = list(check_code_dict.keys())[list(check_code_dict.values()).index(C9)]return C9if __name__ == '__main__':codeHelper = CreditIdentifier()print codeHelper.getSocialCreditCode('5153280000000005')

Python通过前16位生成统一社会信用代码相关推荐

  1. JAVA生成统一社会信用代码和组织机构代码

    统一社会信用代码规则如下: 代码如下: 引入jar包下载:https://mvnrepository.com/artifact/cn.hutool/hutool-all/5.8.3 package c ...

  2. Python随机生成企业及统一社会信用代码

    import random import string# 随机生成企业名称 def generate_company_name():prefix = ['ABC', 'XYZ', 'ACME', 'B ...

  3. java、正则表达式、php校验“统一社会信用代码”

    java import java.util.HashMap; import java.util.Map; /** * Desc: 社会信用代码证 检验 * Created  2016/5/18. */ ...

  4. 用统一社会信用代码直接查询登记机构(GB2260区域代码数据库sql)

    用统一社会信用代码直接查询登记机构 第一个工具类(UnifiedSocialCreditCode) 第二个工具类(UnifiedSocialCreditCode) 第一个工具类(UnifiedSoci ...

  5. JAVA统一社会信用代码正则,用户登录名正则

    统一社会信用代码正则 /*** @description 校验18位的统一社会信用代码* @author CaiCheng* @date 2019年11月5日19:17:31*/public stat ...

  6. python结合正则表达式及校验码生成算法校验:电话号码、营业执照、组织机构代码证、税务登记证、统一社会信用代码证、非盈利性企业登记证号码的函数

    #!/usr/bin/env python3 import re from datetime import datetimedef check_phone(phone):'''三大运营商和虚拟运营商的 ...

  7. Python实现统一社会信用代码校验(GB32100-2015)

    Python实现统一社会信用代码校验 统一社会信用代码国标校验 统一社会信用代码国标校验规则 示例说明 Python代码实现(仅实现GB- 32100-2015中的规则) 统一社会信用代码国标校验   ...

  8. Python实现统一社会信用代码合法性校验

    Python实现统一社会信用代码合法性校验 1 统一代码的构成 1.1 结构 ​ 统一代码由十八位的阿拉伯数字或大写英文字母(不使用I.O.Z.S.V)组成,包括第1位登记管理部门代码.第2位机构类别 ...

  9. 模拟统一社会信用代码(符合规范) python

    统一社会信用代码规则: https://zh.wikisource.org/zh-hans/GB_32100-2015_%E6%B3%95%E4%BA%BA%E5%92%8C%E5%85%B6%E4% ...

最新文章

  1. 漫话:如何给女朋友解释为什么双11无法修改收货地址?
  2. iOS - Tools Using's Problem
  3. linux系统常用快捷键,文件类型,后缀名,语言修改,转义
  4. esp8266 防掉线方法_esp8266 smartconfig-智能配网分析和使用及注意事项
  5. Xposed学习一:初探
  6. 208.实现Trie(前缀树)
  7. python中函数的参数传递
  8. Eclipse 中Access restriction: The type ‘XXX’ is not API
  9. 华为手机计算机快捷,快速让华为手机变成一台电脑,INNOCN便携显示器的更多玩法...
  10. 如何批量打印Word文件
  11. js获取当前屏幕宽度方法
  12. 使用 R 构建复杂设计调查加权(Survey-Weighted) Cox 模型的列线图
  13. 密苏里大学理工学院计算机,美国密苏里大学工学院计算机系主任Dong Xu教授访问我校...
  14. 百度搜索引擎工作原理解读
  15. 珍珠项链(洛谷-P2768)(Dp矩阵加速)
  16. 多个同1div float left换行题
  17. 使用SendCloud企业发送邮件
  18. Python初学笔记4-【嵌套循环】
  19. cdr宏教程_coreldraw
  20. 阿里云服务器搭建日记

热门文章

  1. 蓝桥杯基础练习超全习题题解VIP版——BASIC-26.报时助手(护眼版)
  2. Jsp标签中foreach使用
  3. 朋友圈-电梯-发红包等测试案例
  4. wenet实战系列-双声道音频语音识别
  5. 哈密顿回路图解的方法
  6. c语言单元最短路径贪心算法,单源最短路径 贪心算法
  7. 有什么方法可以将音乐格式转为mp3?借助这几款软件轻松实现
  8. 【Failed to initialize NVML: Driver/library version mismatch(已解决)】
  9. 小谈Springcloud中的几个主流熔断器
  10. Object类是什么?