python - 我需要使用 python 将 sql 表导出到管道分隔的文本文件中,包括列名

标签 python mysql unix text-files delimiter

我目前正在使用下面的内容,它导入以逗号分隔的数据,没有列名称。

此外,表中的日期存在问题,因为它将所有日期列返回为“datetime.date(1925, 1, 24)”,而表中的实际日期类似于“1925-01” -24"。

import MySQLdb
conn = MySQLdb.connect(host = 'localhost', user = 'username', passwd = 'password', port = port, db = 'DBNAME')
cursor = conn.cursor()
query = """SELECT * FROM myschema.mytable;"""
cursor.execute(query)

FILE = cursor.fetchall()

with open('FILE.txt', 'w') as f:
    for row in cursor:
    f.write("%s\n" % str(row))

最佳答案

为什么要使用Python?

SELECT 'column name1', 'column name2' 
UNION ALL
SELECT * FROM myschema.mytable INTO OUTFILE '/tmp/mytable.csv' FIELDS TERMINATED BY '|';

只需在 mysql 控制台中输入此内容即可。请注意,如果您在此查询中收到有关安全文件权限的错误,请执行以下操作

SHOW VARIABLES LIKE "secure_file_priv";

然后使用指定位置代替上一个查询中的“/tmp”。

关于python - 我需要使用 python 将 sql 表导出到管道分隔的文本文件中,包括列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41116974/

相关文章:

python - Mypy 允许 `List[str]` 具有 `Tuple[str, List[str]]` 类型的值

mysql - MariaDB Galera集群设置问题

python - 如何在无法访问互联网的 Unix 服务器 (Solaris x86) 上安装 pandas 0.24?

python - pip install scikit-image 出错

python - Allure serve 命令实时更新并利用高级功能(趋势、历史等)

java - ESC/POS 打印机状态仅返回意外的两个无符号整数

php - 使用范围的 IP 白名单

mysql - 输出SQL中的特定列

java - 原子文件修改

bash - 管道尾部输出到列