superset csv 导出相关问题 记录
1、csv 导出中文乱码问题
修改config配置 改为使用utf-8-sig编码
2、导出csv格式 表头取 列的别名
修改 superset/viz.py 中 get_csv 函数
def get_csv(self):
df = self.get_df()
# 导出csv 替换成 数据源中的label
columns = list(df.columns)
verbose_map = self.datasource.data.get('verbose_map', {})
df.columns = [verbose_map.get(c, c) for c in columns]
include_index = not isinstance(df.index, pd.RangeIndex)
return df.to_csv(index=include_index, **config["CSV_EXPORT"])
3、sqllab查询结果 导出csv,会报错误
报错:
UnicodeEncodeError: ‘latin-1’ codec can’t encode characters in position 9-13: ordinal not in range(256)
原因:查询tab的名字中包含中文
解决:
修改superset/views/core.py 中 def csv(self, client_id):函数
修改编码
response.headers[
"Content-Disposition"
] = f"attachment; filename={query.name}.csv".encode('utf-8')
版权声明:本文为wenqiang1208原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。