我正在尝试修改上传到我的Flask应用程序中的csv。当我不通过烧瓶上载它时,我的逻辑工作得很好。
import pandas as pd import StringIO with open('example.csv') as f: data = f.read() data = data.replace(',"', ",'") data = data.replace('",', "',") df = pd.read_csv(StringIO.StringIO(data), header=None, sep=',', quotechar="'") print df.head(10)
我将其上传到烧瓶并使用
f = request.files['data_file']
当我通过上面的代码运行它,将open(’example.csv’)替换为open(f)时,出现以下错误
coercing to Unicode: need string or buffer, FileStorage found
我发现问题出在这里是文件类型。我无法在文件上使用open,因为open正在寻找文件名,并且当文件上传到flask时,它是传递给open命令的文件实例。但是,我不知道该如何做。我试过跳过open命令,仅使用data = f.read(),但这不起作用。有什么建议?
谢谢
如果有人需要,请回答我自己的问题。
FileStorage对象具有.stream属性,该属性将是io.BytesIO
f = request.files['data_file'] df = pandas.read_csv(f.stream)