繁体   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