python - pandas csv 错误“TextFileReader”对象没有属性“to_html”
问题描述
我正在使用 Pandas 读取一个大型 csv 文件,然后使用 Flask 提供它。我收到错误消息'TextFileReader' object has no attribute 'to_html'
。我认为块大小是导致问题的原因,但没有它我无法打开超过 4GB 的文件。
from flask import Flask, session, request, json,Response,stream_with_context,send_from_directory,render_template
import pandas as pd
app = Flask(__name__)
@app.route('/readcsv')
def host_data():
csvname=request.args.get('csvname')
df=pd.read_csv(csvname,chunksize=5000)
return df.to_html(header="true")
解决方案
使用时,chunksize
您将获得一个块生成器。例如,您应该使用以下命令连接它们:
df = pd.concat((chunk for chunk in pd.read_csv(csvname,chunksize=5000)))
在不实现某种分页的情况下提供这样的大文件,将创建来自服务器的完全阻塞响应,这将导致用户等待文件打开并正确呈现为 html。
推荐阅读
- javascript - 节点以编程方式设置导入模块不可用的进程环境变量
- windows - 适用于 Windows 的 Git:Git\bin\bash.exe 和 Git\usr\bin\bash.exe 之间的区别
- python - 从整数中删除 "
- sql - RDBMS 结果返回、排序和返回集合/哈希图而不是数组/列表
- javascript - 将数据从 res.write() 传递到强大的文件名
- ios - 在 iOS 模拟器上部署 Delphi 应用程序时无法执行 /usr/bin/xcrun simctl install...
- shell - 使用 awk 拆分后删除特定列中的字符
- swift - 无法在捆绑包中加载 NIB - 捆绑包尚未加载
- bash - 读取文本文件以填充 bash 中的数组
- c++ - 如何将 QQuickItem 扩展作为子级添加到另一个 QQuickItem 扩展?