Python 是否有办法将Streamlight用户输入自动格式化为货币(包括逗号、美元符号)?
我正在构建我的第一个Python 是否有办法将Streamlight用户输入自动格式化为货币(包括逗号、美元符号)?,python,python-3.x,streamlit,Python,Python 3.x,Streamlit,我正在构建我的第一个streamlight应用程序。在侧边栏上,我有一个字段供用户输入数值。此输入(最初为st.text\u input(),但后来为st.number\u input()启用显示的数据过滤(此处为薪资列) 我已经看过了,但是找不到一种方法来格式化它,这样在输入1000或以上时,它会自动添加一个逗号,因此它是可读的。此外,如果我能在开头添加一个“$”,那就更好了(虽然不是很重要)。我怀疑这超出了Streamlight的功能范围,但我认为可能有一些奇特的方法可以通过它的小部件来实现
streamlight
应用程序。在侧边栏上,我有一个字段供用户输入数值。此输入(最初为st.text\u input()
,但后来为st.number\u input()
启用显示的数据过滤(此处为薪资列)
我已经看过了,但是找不到一种方法来格式化它,这样在输入1000或以上时,它会自动添加一个逗号,因此它是可读的。此外,如果我能在开头添加一个“$”,那就更好了(虽然不是很重要)。我怀疑这超出了Streamlight的功能范围,但我认为可能有一些奇特的方法可以通过它的小部件来实现这一点
我的代码类似于:
st.sidebar.markdown('### Enter a minimum full-time salary:')
在这种情况下,我认为有一个图像会有所帮助。在这里,我希望它显示为$500000,即使用户输入500000
经过一些研究,我确定实现这一点的方法是使用
st.number\u input()
而不是st.text\u input()
。不过格式
选项的支持很少。这是其他人提出的一个功能:
还有更多。还有这个问题。当这个问题解决后,我将更新最终答案。Streamlight接受一个格式的字符串,该字符串的格式与printf相同
所以你想要:
st.sidebar.number_input('', format='{:,d}')
使用空字符串作为标签,因为您似乎正在对标签使用标记。这不起作用。格式仅限于printf样式,不支持f样式。请参阅我的答案。