首页 > 解决方案 > Streamlit 中的下拉菜单,不带括号和引号

问题描述

我正在使用 streamlit 来显示基于 csv 列表(symbols.csv)的下拉菜单。

这是 csv 列表的外观:

在此处输入图像描述

这是我正在编写的代码:

def choosing_asset():

with open('symbols.csv', newline='') as f:
    reader = csv.reader(f)
    data = list(reader)


option = st.sidebar.selectbox('Select your asset',data)

name = option[0]
ticker = option[1]

return(name,ticker)

这就是 streamlit 显示下拉菜单的方式:

在此处输入图像描述

我想从下拉菜单中删除这些括号和引号,我想只以“比特币,BTC-USD”的格式显示,就像在 csv 文件中一样。

提前致谢

标签: pythondrop-down-menustreamlit

解决方案


你有这样的嵌套列表

data = [ ['Bitcoin', 'BTC-USD'], ['Ethereum', 'ETH-USD'] ]

并且您必须使用 ie 将子列表转换为字符串。join

data = [','.join(row) for row in data]

或者您应该将其作为普通文本文件阅读

with open('symbols.csv', newline='') as f:
    data = list(f)
    data = [line.strip() for line in data]

或者

with open('symbols.csv', newline='') as f:
    data = f.read().splitlines()

顺便提一句:

如果你想跳过第一行Company_name,Company_ticker

data = data[1:]

推荐阅读