我正在构建一个 Flask 应用程序,并使用 sqlalchemy 访问 MySQL 数据库。该数据库包含所有用户登录。数据库看起来像:
LoginID (the primary key) | Username | JoinTime | LeaveTime
请记住,可以在多行中找到用户名(用户在不同时间或日期的不同登录)。
我需要生成一些关于登录位置的统计信息,但位置数据仅在包含两列的 Users.csv
文件中可用:username
和 每个用户的位置
。
我想根据用户名在我的数据库表和 Users.csv 文件之间建立连接。
我有一个 sqlalchemy 查询,它返回在两个给定日期之间登录的用户:
logins = db_session.query(Logins.Username). \
filter(Logins.JoinTime >= session['start_date']). \
filter(Logins.LeaveTime <= session['end_date']). \
all()
是否可以修改上述查询并将数据库表与 Users.csv 文件连接起来? 我想要返回用户登录列表及其位置。
最佳答案
一种方法是使用numpy
库的genfromtxt
方法将csv 文件的内容加载为列表
。
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
子句。
关于python - sqlalchemy - 使用 .csv 文件加入 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35991725/