Как добавить текст, меняющий формат номера? - PullRequest
0 голосов
/ 07 января 2019

Я получаю число из HTML, некоторые из них%, 4 цифры и 7 цифр (37,89%, 3,464, 2 193,813). Я хотел бы сохранить только цифры, а не проценты, без разделителей тысяч (".").

        list_of_rows = []
        for row in table.findAll('div', attrs={'class': 'quadrado'}):
            list_of_cells = []
            for cell in row.findAll('span', attrs={'class': 'circulo'}):
                text = cell.text
                # print(text)
                for cell_index in row.findAll('span', attrs={'class': 'triangulo'}):
                    text_index = cell_index.text
                    list_of_cells_index = [text, text_index] 
                    list_of_cells_index_clean = ','.join(list_of_cells_index) # remove brackets and ''
                    # print(list_of_cells_index_clean) 
                list_of_cells.append(list_of_cells_index_clean)
            list_of_rows.append(list_of_cells)

    outfile = open("./list.csv", "a") 
    writer = csv.writer(outfile, lineterminator = '\n')
    writer.writerows(list_of_rows)

Я хотел бы получить: 37.89%, 3464, 2193,813. Как я могу это сделать?

1 Ответ

0 голосов
/ 07 января 2019

Я не знаю все ваши входные параметры, но это работает для тех, которые вы предоставили.

s = ('37.89%', '3.464', '2,193.813')

for item in s:
  remove_comma = item.replace(',', '')
  keep_percentage = re.findall(r'\d{1,4}\.\d{1,4}%', remove_comma)
  if keep_percentage:
     keep_percentage = ''.join(keep_percentage)
     print (keep_percentage)
  else:
    if (len(remove_comma)) == 5:
        print (remove_comma.replace('.', ''))
    else:
        print (remove_comma.replace('.', ','))

**OUTPUTS**
37.89%
3464
2193,813
...