ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Python实现关税自动计算模型

2026/10/1 14:16:31 拓冰建站 浏览量
Python实现关税自动计算模型 这是关税自动计算Python脚本按HS编码查税率自动算关税、消费税、增值税和到岸总成本并输出明细。python# -*- coding: utf-8 -*-进口环节税费自动计算支持从价税 / 从量税 / 复合税、原产地优惠税率、消费税、进口增值税、汇率折算from dataclasses import dataclass, fieldfrom decimal import Decimal, ROUND_HALF_UPCENT Decimal(0.01)D Decimaldef yuan(x) - Decimal:四舍五入到分return D(x).quantize(CENT, roundingROUND_HALF_UP)# ----------------------------------------------------------------------# 税率规则# ----------------------------------------------------------------------dataclass(frozenTrue)class TaxRule:hs_code: strname: strduty_rate: Decimal D(0) # 从价关税税率duty_per_unit: Decimal D(0) # 从量关税元/计量单位vat_rate: Decimal D(0.13) # 进口环节增值税率excise_rate: Decimal D(0) # 从价消费税率excise_per_unit: Decimal D(0) # 从量消费税元/计量单位preferential: dict field(default_factorydict) # 原产国代码 - 优惠关税税率# 示例税则库真实业务请替换为海关税则 / 接口数据TARIFF_DB {8517.1200: TaxRule(8517.1200, 智能手机, D(0)),8703.2341: TaxRule(8703.2341, 小汽车(1.5L以下), D(0.15),excise_rateD(0.03)),2204.2100: TaxRule(2204.2100, 葡萄酒, D(0.14),excise_rateD(0.10),preferential{CL: D(0), AU: D(0), GE: D(0)}),2402.2000: TaxRule(2402.2000, 卷烟, D(0.25),excise_rateD(0.56), excise_per_unitD(0.003)),}# ----------------------------------------------------------------------# 计算结果# ----------------------------------------------------------------------dataclassclass DutyResult:hs_code: strorigin: strduty_rate: Decimal # 实际适用的关税税率cif: Decimal # 完税价格人民币duty: Decimal # 关税excise: Decimal # 消费税vat: Decimal # 增值税total_tax: Decimal # 税费合计landed_cost: Decimal # 到岸总成本 完税价格 税费def report(self) - str:lines [f商品 : {self.hs_code} 原产地: {self.origin or —},f适用关税税率: {self.duty_rate:.2%},f完税价格 CIF: ¥{self.cif:,.2f},f关 税 : ¥{self.duty:,.2f},f消 费 税 : ¥{self.excise:,.2f},f增 值 税 : ¥{self.vat:,.2f},f税费合计 : ¥{self.total_tax:,.2f},f到岸总成本 : ¥{self.landed_cost:,.2f},]return \n.join(lines)# ----------------------------------------------------------------------# 核心计算# ----------------------------------------------------------------------def calc_import_tax(hs_code: str,price,quantity1,fx_rate1,origin: str None) - DutyResult::param hs_code: HS 编码税则库键值:param price: 成交单价外币或人民币:param quantity: 数量单位需与从量税计量单位一致如 升 / 千克 / 条:param fx_rate: 外币 - 人民币汇率人民币计价填 1:param origin: 原产国代码用于判定协定优惠税率rule TARIFF_DB.get(hs_code)if rule is None:raise KeyError(f税则库中未找到 HS 编码: {hs_code})qty D(str(quantity))fx D(str(fx_rate))# 1. 完税价格CIF人民币cif yuan(D(str(price)) * qty * fx)# 2. 确定适用关税税率协定税率优先origin_key (origin or ).upper()duty_rate rule.preferential.get(origin_key, rule.duty_rate)# 3. 关税 从价税 从量税duty yuan(cif * duty_rate rule.duty_per_unit * qty)# 4. 消费税if rule.excise_rate 0:# 组成计税价格 (完税价格 关税 从量消费税) / (1 - 从价消费税率)base (cif duty rule.excise_per_unit * qty) / (D(1) - rule.excise_rate)excise yuan(base * rule.excise_rate rule.excise_per_unit * qty)elif rule.excise_per_unit 0:excise yuan(rule.excise_per_unit * qty)else:excise yuan(0)# 5. 进口环节增值税vat yuan((cif duty excise) * rule.vat_rate)total_tax yuan(duty excise vat)return DutyResult(hs_codehs_code,originorigin_key,duty_rateduty_rate,cifcif,dutyduty,exciseexcise,vatvat,total_taxtotal_tax,landed_costyuan(cif total_tax),)# ----------------------------------------------------------------------# 演示# ----------------------------------------------------------------------if __name__ __main__:# 例 1法国葡萄酒单价 50 欧元120 瓶汇率 7.8r1 calc_import_tax(2204.2100, price50, quantity120,fx_rate7.8, originFR)print(【例1】, r1.report(), \n)# 例 2同款酒来自智利享受协定零关税r2 calc_import_tax(2204.2100, price50, quantity120,fx_rate7.8, originCL)print(【例2】, r2.report(), \n)# 例 3卷烟从价 从量复合税1000 条r3 calc_import_tax(2402.2000, price200, quantity1000, fx_rate1)print(【例3】, r3.report())进口税费计算工具的核心模块这个脚本把进口税费计算拆成几个好用的部分您只需要提供商品信息就能直接出结果。· 税则库用TaxRule记录每个HS编码对应的从价税、从量税、增值税、消费税及优惠税率示例里放了智能手机、葡萄酒、卷烟等常见品类。· 计算函数calc_import_tax接收HS编码、单价、数量、汇率和原产地自动完成完税价格、关税、消费税、增值税及到岸总成本的计算。· 结果报告返回DutyResult对象并附report()方法直接打印各项税费明细方便核对和记录。· 优惠判定传入原产地代码后系统会优先匹配协定税率像智利葡萄酒就能享受零关税。---优化建议 示例税则库仅含少量商品您可以将TARIFF_DB替换为真实海关税则数据或接入查询接口并同步更新相关税率字段。文章仅供参考学习用。