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')