首页 > 解决方案 > 将mysql数据导出到csv时不要将NULL值转换为空字符串

问题描述

我正在使用 pymysql 游标将数据从 mysql 导出到 csv,如下所示:

cur = conn.cursor()
c = csv.writer(open(csvFilePath, "w",newline='',encoding='utf-8'))
for row in cur:
  c.writerow(list(row))

但是每当我在 mysql 列中遇到空值时,光标就会在 csv 中写入一个空字符串“”。我想在 csv 中写入“NULL”字符串,以便在将其上传到另一个数据库(如 redshift)时将其转换为 null。

标签: pythonmysqlcsvpymysql

解决方案


您可以管理来自 select 的正确输出,而不是在编写 csv 期间替换 null 值

所以尝试对空值使用适当的选择

  select col1, col2, ifnull(your_possible_null_col, 'NULL'), ...
  from your_table 
  where  ... 

您还可以查看 INTO OUTFILE 以避免逐行管理


推荐阅读