【问题标题】:Is there a way for streamlit user input to be formatted automatically as currency (include commas, dollar sign)?有没有办法让流线型用户输入自动格式化为货币(包括逗号、美元符号)?
【发布时间】:2021-08-07 05:10:24
【问题描述】:

我正在构建我的第一个 streamlit 应用程序。在我的侧边栏上,我有一个字段供用户输入数值。此输入(最初为 st.text_input(),但后来为 st.number_input() 启用过滤显示的数据(这里是一列薪水)。

我已经看过但找不到一种方法来格式化它,以便输入 1,000 或更高,它会自动添加一个逗号,因此它是人类可读的。另外,如果我可以在开头添加一个“$”,那就更好了(虽然不是很重要)。我怀疑这超出了streamlit 的能力,但我认为也许有一些奇特的方法可以通过它的小部件来实现这一点。

我的代码是这样的:

 st.sidebar.markdown('### Enter a minimum full-time salary:')

在这种情况下,我认为拥有一张图片会有所帮助。在这里,即使用户输入 500,000,我也希望它显示为 500,000 美元。

【问题讨论】:

    标签: python python-3.x streamlit


    【解决方案1】:

    streamlit number_input 接受 format 字符串,该字符串像 printf 一样格式化数字。

    所以你想要:

    st.sidebar.number_input('', format='{:,d}')
    

    使用空字符串作为标签,因为您似乎在使用 markdown 作为标签。

    【讨论】:

    • 这不起作用。格式仅限于 printf 样式,不支持 f 样式。请参阅我对此的回答。
    【解决方案2】:

    经过一番研究,我确定解决此问题的方法是使用st.number_input() 而不是st.text_input()。不过,format 选项的支持很少。这是其他人提出的一个功能:

    这里有更多context。有这个打开GitHub issue。当这个未解决的问题得到解决后,我会更新最终答案。

    【讨论】:

      猜你喜欢
      • 2022-01-07
      • 2018-03-29
      • 2012-01-29
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 2022-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多