在Python中,我试图创建一个登录页面,从Google表单中提取存储的数据,以便在Streamlit Authenticator中使用.Streamlight Authenticator通过访问包含用户名、密码和屏幕名的列表容器来验证登录,如下所示:
username = ['johndoe', 'janedoe']
password = ['123', '456']
names = ['John Doe', 'Jane Doe']
我正在开发的应用程序运行在云上,我将用户数据存储在一个谷歌表格中, struct 如下:
username, password, names
johndoe, 123, John Doe
janedoe, 456, Jane Doe
使用pysheets
和get_as_df
操作,我试图提取数据来填充Streamlight Authenticator的容器.然而,当我使用pysheets拉一个列表时,各个单元格会作为单独的列表返回,如本例中的username
列:
import pygsheets
import pandas as pd
gc = pygsheets.authorize(service_file=local_file) #for Google Sheets API authentication
sh = gc.open('users') # Google Sheet name
wks = sh0[0] # Worksheet number
database_length = wks0.get_all_values(include_tailing_empty_rows=False, include_tailing_empty=False, returnas='matrix') # for finding the number of filled rows in sheet
end_row = str(len(database_length))
usernames_grab = wks0.get_as_df(has_header=False, index_column=0, start='A2', end=('A'+end_row0), numerize=False) # grabs cell data as dataframe
usernames_list = usernames_grab.values.tolist() # converts dataframe to list
print(usernames_list)
返回:
[['johndoe'], ['janedoe']]
然后,我try 相应地设置Streamlight验证器:
username = usernames_list
passwords = password_list
names - names_list
但是当加载脚本时,我收到以下错误:AttributeError: 'list' object has no attribute 'encode'
我猜我不能以这种方式传递列表列表?对如何进行有什么建议吗?