在Python中的特定字符之前删除空格?

时间:2018-07-04 17:20:40

标签: python string ocr whitespace strip

我想知道你是否知道最好的方法。

此程序使用OCR读取文本。有时,小数点前会出现空格,如下所示:

{'MORTON BASSET BLK SESAME SEE': '$6.89'}
{"KELLOGG'S RICE KRISPIES": '$3.49'}
{'RAID FLY RIBBON 4PK': '$1 .49'}

如您所见,最后一个条目的小数点前会出现一个空格。关于如何剥离此空白的任何想法?

谢谢:)

编辑:小数点前的内容可能包含不同数量的空格。像

$1    .49
$1  .49
$1 .49

6 个答案:

答案 0 :(得分:1)

使用regular expressions

import re
a_list = {"1 .49", "1   .49", "1          .49"}

for a in a_list:
  print re.sub(' +.', '.', a)

结果将是

1.49
1.49
1.49

答案 1 :(得分:0)

您可以从字符串中去除所有空格,前提是它们遵循相同的格式。像这样:

for item in items: 
  for key in item.keys():
    item[key] = item[key].replace(" ", "")

关键部分是用空白代替空白。

如果您只是想要“。”之前的空格,则可以使用: .replace(“。”,“。”)代替。

这只会替换1个空格。要替换多个,可以使用如下while循环:

while ' .' in item[key]:
  item[key].replace(' .', '.')

答案 2 :(得分:0)

对于您的字典obj:-

>>> d = {'RAID FLY RIBBON 4PK': '$1 .49'}
>>> d['RAID FLY RIBBON 4PK'] = d['RAID FLY RIBBON 4PK'].replace(' ','')
>>> d
{'RAID FLY RIBBON 4PK': '$1.49'}

即使空间变化;更换将正常工作。看到这个:-

>>> d = {'RAID FLY RIBBON 4PK': '$1       .49'}
>>> d['RAID FLY RIBBON 4PK'] = d['RAID FLY RIBBON 4PK'].replace(' ','')
>>> d
{'RAID FLY RIBBON 4PK': '$1.49'}

答案 3 :(得分:0)

我认为您可能不仅希望为该键提供更通用的东西:

for key, value in d.items():
   d[key]=value.replace(" ","")

以这种方式与键无关,空格的数量将导致结果没有空白

答案 4 :(得分:0)

这很容易拆分和合并:

"".join("1     .49".split())

之所以有效,是因为在一个或多个空格上分割。要对字典中的每个值执行此操作:

{k, "".join(v.split()) for k,v in dict_.items()}

答案 5 :(得分:-2)

确定:

string.replace(' .', '')