Formatação em reais

23 views
Skip to first unread message

Gualter Portella

unread,
Oct 30, 2017, 1:33:30 PM10/30/17
to web2py-users-brazil
Prezados, boa tarde.

Sou novo em programação, Python e web2py, mas me aventurei a desenvolver um app.

Provavelmente alguém já fez essa pergunta, mas não consegui localizar na pesquisa.

Como faço para traduzir os dados numéricos extraídos do banco de dados para o formato brasileiro?

Sei que se usar Python 3, posso fazer algo parecido com:

No model:
   swap_separators = { ord('.'):',', ord(','):'.' }

Na view:

   {{ ativos = format(float(tabela.coluna), '0.2f') }}

  {{=format(float(ativos), ',').translate(swap_separators)}}


A questão é que os hosts de web2py parece que trabalham com Python 2, exclusivamente. Daí, a dificuldade de usar a solução acima.


Alguém pode me apontar um caminho? Pesquisei na internet e nos livros, mas não encontrei nada.


Abraço a todos e obrigado.


 



Desobediente

unread,
Oct 30, 2017, 1:44:17 PM10/30/17
to web2py-us...@googlegroups.com
Eu tenho um bot de telegram que converte valores que é em python2

Procura as linhas com formatação de string nesse arquivo: https://github.com/desci/tg-cryptoforexbot/blob/master/cryptoforexbot/bot_commands.py

Desculpe a bagunça no código, já tento explicar melhor

Maxwell Morais

unread,
Oct 30, 2017, 1:44:34 PM10/30/17
to web2py-us...@googlegroups.com
@Gualter, a muito tempo atras eu fiz dois plugins para web2py justamente, para resolver este tipo de problema.

Voce pode encontralos aqui

Uma das coisas que eu me preocupei, foi, com o fato, de que muitas das vezes, queremos que os nossos dados sejam formatados como numeros em tabelas e listas, e para nao ter que ficar reimplementando tudo, todo o tempo, eu fiz esses plugins.

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--

Best Regards.

Maxwell Morais
Python Developer powered by Webnotes framework <3

Gualter Portella

unread,
Oct 30, 2017, 2:03:28 PM10/30/17
to web2py-us...@googlegroups.com
Obrigado, Desobediente!

Vou ver se consigo entender o código.

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito em um tópico no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/web2py-users-brazil/yANFwh-tYY0/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.



--
Gualter Portella

Gualter Portella

unread,
Oct 30, 2017, 2:04:35 PM10/30/17
to web2py-us...@googlegroups.com
Obrigado, Maxwell!

Vou olhar os plugins agora mesmo.

Em 30 de outubro de 2017 15:44, Maxwell Morais <max.mor...@gmail.com> escreveu:
@Gualter, a muito tempo atras eu fiz dois plugins para web2py justamente, para resolver este tipo de problema.

Voce pode encontralos aqui

Uma das coisas que eu me preocupei, foi, com o fato, de que muitas das vezes, queremos que os nossos dados sejam formatados como numeros em tabelas e listas, e para nao ter que ficar reimplementando tudo, todo o tempo, eu fiz esses plugins.
Em 30 de outubro de 2017 15:33, Gualter Portella <gual...@gmail.com> escreveu:
Prezados, boa tarde.

Sou novo em programação, Python e web2py, mas me aventurei a desenvolver um app.

Provavelmente alguém já fez essa pergunta, mas não consegui localizar na pesquisa.

Como faço para traduzir os dados numéricos extraídos do banco de dados para o formato brasileiro?

Sei que se usar Python 3, posso fazer algo parecido com:

No model:
   swap_separators = { ord('.'):',', ord(','):'.' }

Na view:

   {{ ativos = format(float(tabela.coluna), '0.2f') }}

  {{=format(float(ativos), ',').translate(swap_separators)}}


A questão é que os hosts de web2py parece que trabalham com Python 2, exclusivamente. Daí, a dificuldade de usar a solução acima.


Alguém pode me apontar um caminho? Pesquisei na internet e nos livros, mas não encontrei nada.


Abraço a todos e obrigado.


 



--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsubscribe...@googlegroups.com

Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsubscribe...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.



--

Best Regards.

Maxwell Morais
Python Developer powered by Webnotes framework <3

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito em um tópico no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/web2py-users-brazil/yANFwh-tYY0/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.



--
Gualter Portella

Desobediente

unread,
Oct 30, 2017, 2:10:55 PM10/30/17
to web2py-us...@googlegroups.com
Basicamente em python2 pra formatar os valores pra dolar/real é mais ou menos isso:

moeda = str('R$')
valor = float(1.99)
valor_formatado = '{:,.2f}'.format(valor)
print(' '.join([moeda, valor_formatado]))

E pra mostrar valores em bitcoin ou outra criptomoeda com oito casas decimais:

moeda = str('BTC')
valor = float(0.00009958)
valor_formatado = '{:,.8f}'.format(valor)
imprimir = ' '.join([valor_formatado, moeda])

--

Desobediente

unread,
Oct 30, 2017, 2:21:09 PM10/30/17
to web2py-us...@googlegroups.com
Por exemplo, essa bagunça toda aqui:

"""
Price information for %s (from coinmarketcap.com)
Marketcap: U$$ %s
Price of 1 %s:
U$$ %s USD
%s BTC
Price change since last
hour: %s%%
day: %s%%
week: %s%%
Last 24 hours volume: U$$ %s
Available supply: %s %s
Total supply: %s %s
""" % (response[1][0]['name'], '{:,.2f}'.format(float(response[1][0]['market_cap_usd'])), response[1][0]['symbol'], '{:,.2f}'.format(float(response[1][0]['price_usd'])), '{:,.8f}'.format(float(response[1][0]['price_btc'])), response[1][0]['percent_change_1h'], response[1][0]['percent_change_24h'], response[1][0]['percent_change_7d'], '{:,.2f}'.format(float(response[1][0]['24h_volume_usd'])), '{:,.8f}'.format(float(response[1][0]['available_supply'])), response[1][0]['symbol'], '{:,.8f}'.format(float(response[1][0]['total_supply'])), response[1][0]['symbol']))





Vai gerar essa saída:

Price information for Ethereum (from coinmarketcap.com)

Marketcap: U$$ 29,216,587,509.00

Price of 1 ETH:
U$$ 306.19 USD
0.05003370 BTC

Price change since last
hour: 0.14%
day: -0.62%
week: 7.82%

Last 24 hours volume: U$$ 386,247,000.00

Available supply: 95,419,797.00000000 ETH
Total supply: 95,419,797.00000000 ETH





Se tu olhar só a parte da formatação de strings ali, tu tem uma ideia de o que é que eu fiz

Gualter Portella

unread,
Oct 30, 2017, 3:41:47 PM10/30/17
to web2py-us...@googlegroups.com
Valeu!

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito em um tópico no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/web2py-users-brazil/yANFwh-tYY0/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Gualter Portella
Reply all
Reply to author
Forward
0 new messages