python - sqlalchemy - 使用 .csv 文件加入 MySQL 表

标签 python mysql database csv sqlalchemy

我正在构建一个 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/

相关文章:

php - 模型->保存()在 Yii 中不起作用 -> 显示 ' error '

python - 多索引 pandas 数据帧的最高和最低列值

python - SQLAlchemy ORM 是大型数据的正确选择吗?

python - 将新数据附加到数据框

mysql - 如何使用包含运算符的 WHERE 在 SQL SELECT 语句中容纳空值

mysql - 设置 mysql docker 容器

php - 创建多个表时出现SQL错误

ruby-on-rails - 如何备份部署在EC2上的rails项目的postgresql数据库

java - 使用java和数据库将值插入外键

python - 我想捕获两个正则表达式匹配之间出现的文本