python - 如何将数据框下载或转换为excel文件?
问题描述
试图将数据框转换或下载到带有阿拉伯数据的 excel 文件中。
但是当我运行脚本时系统崩溃并显示以下错误:
AttributeError: 'NoneType' object has no attribute 'encode'
Traceback:
File "F:\AIenv\lib\site-packages\streamlit\script_runner.py", line 333, in _run_script
exec(code, module.__dict__)
File "f:\AIenv\streamlit\app2.py", line 712, in <module>
main()
File "f:\AIenv\streamlit\app2.py", line 250, in main
transform(df)
File "f:\AIenv\streamlit\app2.py", line 178, in transform
download_file(df, types, new_types, "xls")
File "f:\AIenv\streamlit\app2.py", line 141, in download_file
b64 = base64.b64encode(excel.encode()).decode("utf-8")
代码:
import pandas as pd
import base64
data=pd.DataFrame({
"SourceNo":[11192,11193,11194],
"IssuedDate":['3/15/2021','3/15/2021','3/15/2021'],
نوع":["هاتف","تلفاز","سماعة"]",
مكان الحدث":["حي السلم","منطقة الشمال","ميناء"]",
التاريخ":["3/15/2021","3/15/2021","3/15/2021"]",
أشخاص":["مواطنون","مواطنون","مجهول"]"
})
df=pd.read_excel(data)
excel = df.to_excel(r"F:\update2.xlsx", index = False, header=True,encoding="utf-8")
b64 = base64.b64encode(excel.encode()).decode("utf-8")
这段代码的错误在哪里?
解决方案
该.to_excel
方法写入一个文件并返回None
. 如果您想要以 base64 编码的文件内容,请将其读回:
import pandas as pd
import base64
df = pd.DataFrame({'SourceNo':[11192,11193,11194],
'IssuedDate':['3/15/2021','3/15/2021','3/15/2021'],
'نوع':['هاتف','تلفاز','سماعة'],
'مكان الحدث':['حي السلم','منطقة الشمال','ميناء'],
'التاريخ':['3/15/2021','3/15/2021','3/15/2021'],
'أشخاص':['مواطنون','مواطنون','مجهول']})
df.to_excel('update2.xlsx', index = False, header=True,encoding='utf-8')
with open('update2.xlsx','rb') as f:
b64 = base64.b64encode(f.read())
推荐阅读
- unit-testing - 使用 Enzyme + React Native + Jest 测试时常量未定义
- python - 构建包含 python 脚本和依赖 python 模块的 rpm
- java - 如何调用 java.sql.Connection::abort?
- pandas - 通过在具有非数字值的两行上应用插值函数,从旧数据帧创建新数据帧
- sql-server - SQL Server TEMP_DB 初始化任务死锁
- r - R:在 nlsLM() 语句中进行总结
- python - 如何去除html中的特殊字符
- bash - 将 IFS 设置为在从此处读取字符串时忽略空格
- java - javacore 和 heapdump 中的堆大小:IBM JVM 上的 20 倍差异
- php - 如何通过 ajax 将数据导入 Symfony 4 中的表单?