簡體   English   中英

漢字從 pandas dataframe 到 CSV 與 Streamlit

[英]Chinese characters from pandas dataframe to CSV with Streamlit

我有一個帶有漢字的 pandas 數據框。 像這樣將其轉換為 CSV 時可以正常工作:

df.to_csv('file.csv', encoding='utf-8-sig')

但是,當我想將它集成到Streamlit應用程序中時,我在下載 CSV 時得到了這個(見圖)。 這是 Streamlit 代碼:

import streamlit as st


file_to_download = df.to_csv(encoding = 'utf-8-sig')
st.download_button("Download",df,"file.csv")     

在此處輸入圖像描述

嘗試明確設置 mime='text/csv' 並更改為 utf-8 並通過以下方式將其提供給 download_button:

st.download_button('Download', data=df.to_csv(index=False).encode('utf-8'),file_name='file.csv',mime='text/csv')

您可以查看有關 pandas to_csv(encoding) 的文檔,它在 output 文件中的使用。 https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_csv.html

編碼參數

因此,如果您想對緩存進行編碼,請使用 encode("utf_8_sig")。

也許是這樣的:

file_to_download = df.to_csv().encode("utf_8_sig")
st.download_button("Download",file_to_download ,"file.csv")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM