如何拆分tesseract image_to_string结果为键值对并合并同键数值?
解决方案
不需要用到pandas,用Python基础的字符串处理和字典操作就能轻松实现:
代码实现
import re input_list = ['Max. Acc +400', 'VER +28', 'VER +10'] result = {} for item in input_list: # 匹配键名和数值部分 match = re.match(r'(.+?)\s+([+-]\d+)', item) if match: key_raw, num_str = match.groups() # 格式化键名:Max. Acc -> Max ACC formatted_key = key_raw.replace('.', '').strip().replace('Acc', 'ACC') # 转换数值为整数 num = int(num_str) # 累加相同键的数值 if formatted_key in result: result[formatted_key] += num else: result[formatted_key] = num print(result) # 输出: {'Max ACC': 400, 'VER': 38}
步骤说明
- 正则拆分:用正则表达式
r'(.+?)\s+([+-]\d+)'精准拆分每个字符串的键名部分和带符号的数值,避免键名包含空格时split出错的问题。 - 键名格式化:把
Max. Acc处理为Max ACC,通过替换点号、调整大小写实现。 - 数值累加:遍历过程中检查键是否已存在,存在则累加数值,不存在则初始化键值对,实现VER的28+10=38的需求。
内容的提问来源于stack exchange,提问作者Tweath
相关产品推荐
相关产品推荐

