zl程序教程

您现在的位置是:首页 >  后端

当前栏目

已解决(Python cn2an库实现中文数字与阿拉伯数字互转)ValueError: mode 仅支持 [‘low‘, ‘up‘, ‘rmb‘, ‘direct‘]

Python 实现 解决 支持 mode Up 互转 ValueError
2023-09-14 09:05:15 时间


已解决(Python cn2an库实现中文数字与阿拉伯数字互转)ValueError: mode 仅支持 [‘low‘, ‘up‘, ‘rmb‘, ‘direct‘]











报错内容



粉丝群里面的一个小伙伴想用python,但是发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),报错代码如下:


import re
import cn2an

a = ['1百23', '一万二', '37.30万', '五千三百二十', '24910.16', '5000.00']

for i in a:
    output = cn2an.an2cn(i, "smart")
    print(output)


报错信息:

    raise ValueError(f"mode 仅支持 {str(self.mode_list)} !")
ValueError: mode 仅支持 ['low', 'up', 'rmb', 'direct']

在这里插入图片描述





报错翻译



报错内容翻译:值错误:模式仅支持 [“低”,“上”,“人民币”,“直接”]







报错原因



报错原因cn2an.an2cn是将阿拉伯数字转化为小写的中文数字,并不能将中文数字转换为阿拉伯数字





解决方法



cn2an.cn2an(inputs,mode)才是将中文数字转阿拉伯数字。

参数解读

  • inputs类型为字符串,需要转换的字符串

  • mode类型为字符串,mode仅支持strict(严格模式), normal(正常模式), smart(灵活模式)等三个值。


修改代码为

import re
import cn2an

a = ['1百23', '一万二', '37.30万', '五千三百二十', '24910.16', '5000.00']

for i in a:
    output = cn2an.cn2an(i, "smart")
    print(output)

再次运行成功:

123
12000
373000
5320
24910.16
5000.0
import re
import cn2an

# 一、实现中文数字转阿拉伯数字
a = ['1百23', '一万二', '37.30万', '五千三百二十', '24910.16', '5000.00']

for i in a:
    output = cn2an.cn2an(i, "smart")
    print(output)

print("-"*30)

# 二、句子中的数字转换与提取
b = ['赔偿经济损失人民币37.30万元', '赔偿差旅费五千三百二十元', '赔偿损失24910.16元', '赔偿经济损失(含合理支出)5000.00元']

for i in b:
    output = cn2an.transform(i)
    print(output)
    money = re.findall("\d*\.*\d*万*", output)
    money = ''.join(money)
    money = cn2an.cn2an(money, "smart")
    print(money)
123
12000
373000
5320
24910.16
5000.0
------------------------------
WARN: 不符合格式的数据:万
赔偿经济损失人民币37.30万元
373000
赔偿差旅费53205320.0
赔偿损失24910.1624910.16
赔偿经济损失(含合理支出)5000.005000.0

以上是此问题报错原因的解决方法,欢迎评论区留言讨论是否能解决,如果有用欢迎点赞收藏文章谢谢支持,博主才有动力持续记录遇到的问题!!!

千人全栈VIP答疑群联系博主帮忙解决报错

由于博主时间精力有限,每天私信人数太多,没办法每个粉丝都及时回复,所以优先回复VIP粉丝,可以通过订阅限时9.9付费专栏《100天精通Python从入门到就业》进入千人全栈VIP答疑群,获得优先解答机会(代码指导、远程服务),白嫖80G学习资料大礼包,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html

  • 优点作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会),此专栏文章是专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试!

  • 专栏福利简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等

  • 在这里插入图片描述
    在这里插入图片描述

免费资料获取,更多粉丝福利,关注下方公众号获取

在这里插入图片描述