chinese_num = {
     u'〇': 0, u'零': 0,
     u'一': 1, u'壹': 1,
     u'二': 2, u'两': 2, u'贰': 2,
     u'三': 3, u'叁': 3,
     u'四': 4, u'肆': 4,
     u'五': 5, u'伍': 5,
     u'六': 6, u'陆': 6,
     u'七': 7, u'柒': 7,
     u'八': 8, u'捌': 8,
     u'九': 9, u'玖': 9,
     u'十': 10, u'拾': 10,
     u'百': 100, u'佰': 100,
     u'千': 1000, u'仟': 1000,
     u'万': 10000, u'萬': 10000,
     u'亿': 100000000, u'億': 100000000,
 }

# 叁仟
def chinese2digits(value):
    total = 0.00
    # 基础单位
    base_unit = 1
    # 可变单位
    dynamic_unit = 1
    for i in range(len(value) - 1, -1, -1):

        val = chinese_num.get(value[i])
        # 表示单位
        if not val:
            continue
        if val > 10:
            if val > base_unit:
                base_unit = val
            else:
                dynamic_unit = base_unit * val
        # 10既可以做单位也可做数字
        elif val == 10:
            if i == 0:
                if dynamic_unit > base_unit:
                    total = total + dynamic_unit * val
                else:
                    total = total + base_unit * val
            else:
                dynamic_unit = base_unit * val
        else:
            if dynamic_unit > base_unit:
                total = total + dynamic_unit * val
            else:
                total = total + base_unit * val
    return total

print(chinese2digits('叁仟万元整'))

输出结果

30000000.0