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

Responder a