superset csv 導出相關問題

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')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章