我正在构建Flask应用程序,并使用sqlalchemy访问MySQL数据库。此数据库包含所有用户登录。数据库看起来像:
LoginID (the primary key) | Username | JoinTime | LeaveTime
请注意,可以在很多行中找到用户名(用户在不同时间或天数的不同登录信息)。
我需要生成一些有关登录位置的统计信息,但位置数据仅在Users.csv
文件中提供,该文件包含两列:每个用户username
和location
。
我想基于用户名在我的数据库表和Users.csv文件之间建立连接。
我有一个sqlalchemy查询,它返回在两个给定日期之间登录的用户:
logins = db_session.query(Logins.Username). \
filter(Logins.JoinTime >= session['start_date']). \
filter(Logins.LeaveTime <= session['end_date']). \
all()
是否可以修改上述查询并使用Users.csv文件加入数据库表? 我想要一个用户登录列表,并返回其位置。
答案 0 :(得分:0)
一种方法是使用numpy
库的genfromtxt
方法将 csv 文件的内容加载为list
。
from numpy import genfromtxt
def fetch_data(file_name):
data = genfromtxt(file_name, delimiter=',', skiprows=1, converters={0: lambda s: str(s)})
return data.tolist()
现在,您可以直接在SQL查询中使用此list
,也可以将list
保留在MySQL数据库中的单独表中,然后使用传统的JOIN
子句。