Muchas gracias Pery, peor no me funciona igual: No me separa los miles. No se. Uso Visual Studio Code peor por eso no creo que sea porque usando otro ide el resultado es el mismo.
He simplificado el código: import locale locale.setlocale(locale.LC_ALL, 'es_ES') valor = 25400.57 print(f"{valor:n}") print(f"{valor=:}") Y me sale: 25400,6 valor=25400.57 Saludos, -- Javier Pérez http://es.linkedin.com/in/javierperez1 http://www.perasalvino.es/ > El 20 ago 2020, a las 17:09, PeRy <pery...@gmail.com> escribió: > > Hola compañero, yo lo hago de la siguiente manera: > > In [1]: import locale > > In [2]: a = 25400.57 > > In [3]: a > Out[3]: 25400.57 > > In [4]: locale.setlocale(locale.LC_ALL, 'es') > Out[4]: 'es' > > In [5]: print(f'{a:n}') > 25.400,6 > > 'n' > Number. This is the same as 'd', except that it uses the current locale > setting to insert the appropriate number separator characters. > https://docs.python.org/3/library/string.html#format-specification-mini-language > > espero que te sirva > > un saludo > > El jue., 20 ago. 2020 a las 14:00, Javier Perez > (<javierpe...@perasalvino.es>) escribió: > Hola a todos, buenos días, > > > En la aplicación que estoy desarrollando extraigo una serie de datos de una > web que es americana. Me gustaría pasar esos datos a formato español. Vamos, > cambiar el punto decimal por una coma. > > No es por el origen de los datos porque he creado una variable con decimales > y me la muestra mal. > > ¿qué estoy haciendo mal? > > > > El programa es este: > import pprint > from gazpacho import get, Soup > import locale > locale.setlocale(locale.LC_ALL, 'es_ES') > > valor = 0 > url = "https://markets.ft.com/data/funds/tearsheet/risk?s=LU0275692696:EUR" > html = get(url) > gazpacho_soup = Soup(html) > valor = gazpacho_soup.find( > 'span', attrs={'class': 'mod-ui-data-list__value'})[0].text > valor = valor.replace(",", "") > valor = float(valor) > valor = valor * 1000 > anual = gazpacho_soup.find( > 'span', attrs={'class': 'mod-ui-data-list__value'})[2].text > anual = anual.replace("%", "") > anual = float(anual) > moneda = 15268.57 > alpha = gazpacho_soup.find('td')[1].text > alpha = float(alpha) > beta = gazpacho_soup.find('td')[4].text > beta = float(beta) > > > print(valor) > print(anual) > print(alpha) > print(moneda) > print(beta) > > configuracion = locale.localeconv() > > # Imprimir definiciones con pprint para una lectura agradable: > imprimir = pprint.PrettyPrinter() > imprimir.pprint(configuracion) > > > > Y lo que genera es: > 25910.0 > 4.18 > -18.87 > 15268.57 > 0.94 > {'currency_symbol': 'Eu', > 'decimal_point': ',', > 'frac_digits': 2, > 'grouping': [127], > 'int_curr_symbol': 'EUR ', > 'int_frac_digits': 2, > 'mon_decimal_point': ',', > 'mon_grouping': [3, 3, 0], > 'mon_thousands_sep': '.', > 'n_cs_precedes': 0, > 'n_sep_by_space': 1, > 'n_sign_posn': 1, > 'negative_sign': '-', > 'p_cs_precedes': 0, > 'p_sep_by_space': 1, > 'p_sign_posn': 1, > 'positive_sign': '', > 'thousands_sep': ''} > > Saludos, > > -- > Javier Pérez > http://es.linkedin.com/in/javierperez1 > http://www.perasalvino.es/ > > > > > _______________________________________________ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > _______________________________________________ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es _______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es