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

更新时间:2023-05-07 09:03:38 阅读: 评论:0

Python通过前16位⽣成统⼀社会信⽤代码
# -*- 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(lf, 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 = lf.gen_check_code(
weighting_factor, ontology_code, 11, ORGANIZATION_CHECK_CODE_DICT)
return code[:16] + tmp_check_code
def getSocialCreditCode(lf, code):
code = lf.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 = lf.gen_check_code(
weighting_factor, ontology_code, 31, SOCIAL_CREDIT_CHECK_CODE_DICT)
return code[:17] + tmp_check_code
def gen_check_code(lf, weighting_factor, ontology_code, modulus, check_code_dict):
total = 0
for i in range(len(ontology_code)):
if ontology_code[i].isdigit():
total += int(ontology_code[i]) * weighting_factor[i]
el:
total += check_code_dict[ontology_code[i]
] * weighting_factor[i]
C9 = modulus - total % modulus
C9 = 0 if C9 == 31 el C9
C9 = list(check_code_dict.keys())[
list(check_code_dict.values()).index(C9)]
return C9
if __name__ == '__main__':
codeHelper = CreditIdentifier()
SocialCreditCode('5153280000000005')

本文发布于:2023-05-07 09:03:38,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/547005.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:代码   组织   机构   编制   加权   计算   规则   位置
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图