前提
pythonのflaskでCSVアップロード機能を実装しております。
実現したいこと
送られてきたCSVをファイルをpd.read_csvで2回読み込みたいのですが、なぜか一回目のread_csvは通って、2回目のread_csvでエラーが出ます。
フロントエンドから送られてきたcsv_dataは一度read_csvすると中身がなくなるということはあるのでしょうか?
python
1def upload(): 2 csv_data = request.files['file'] 3 df = pd.read_csv(csv_data,skiprows=[0,1,2,3,4],encoding="cp932",engine="python") 4 print(df) 5 df = pd.read_csv(csv_data,skiprows=[0,1,2,3,4],encoding="cp932",engine="python") 6 print(df)
発生している問題・エラーメッセージ
python
1Traceback (most recent call last): 2 File "/usr/local/lib64/python3.7/site-packages/pandas/io/parsers/python_parser.py", line 376, in _infer_columns 3 line = self._buffered_line() 4 File "/usr/local/lib64/python3.7/site-packages/pandas/io/parsers/python_parser.py", line 584, in _buffered_line 5 return self._next_line() 6 File "/usr/local/lib64/python3.7/site-packages/pandas/io/parsers/python_parser.py", line 678, in _next_line 7 next(self.data) 8StopIteration 9 10The above exception was the direct cause of the following exception: 11 12Traceback (most recent call last): 13 File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2088, in __call__ 14 return self.wsgi_app(environ, start_response) 15 File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2073, in wsgi_app 16 response = self.handle_exception(e) 17 File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 165, in wrapped_function 18 return cors_after_request(app.make_response(f(*args, **kwargs))) 19 File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2070, in wsgi_app 20 response = self.full_dispatch_request() 21 File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1515, in full_dispatch_request 22 rv = self.handle_user_exception(e) 23 File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 165, in wrapped_function 24 return cors_after_request(app.make_response(f(*args, **kwargs))) 25 File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1513, in full_dispatch_request 26 rv = self.dispatch_request() 27 File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1499, in dispatch_request 28 return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args) 29 File "./api/views/csv_upload.py", line 30, in upload 30 df = pd.read_csv(csv_data,skiprows=[0,1,2,3,4],encoding="cp932",engine="python") 31 File "/usr/local/lib64/python3.7/site-packages/pandas/util/_decorators.py", line 311, in wrapper 32 return func(*args, **kwargs) 33 File "/usr/local/lib64/python3.7/site-packages/pandas/io/parsers/readers.py", line 586, in read_csv 34 return _read(filepath_or_buffer, kwds) 35 File "/usr/local/lib64/python3.7/site-packages/pandas/io/parsers/readers.py", line 482, in _read 36 parser = TextFileReader(filepath_or_buffer, **kwds) 37 File "/usr/local/lib64/python3.7/site-packages/pandas/io/parsers/readers.py", line 811, in __init__ 38 self._engine = self._make_engine(self.engine) 39 File "/usr/local/lib64/python3.7/site-packages/pandas/io/parsers/readers.py", line 1040, in _make_engine 40 return mapping[engine](self.f, **self.options) # type: ignore[call-arg] 41 File "/usr/local/lib64/python3.7/site-packages/pandas/io/parsers/python_parser.py", line 113, in __init__ 42 ) = self._infer_columns() 43 File "/usr/local/lib64/python3.7/site-packages/pandas/io/parsers/python_parser.py", line 398, in _infer_columns 44 raise EmptyDataError("No columns to parse from file") from err 45pandas.errors.EmptyDataError: No columns to parse from file
一回目のread_csvで読み込んだdfはprintされていました。
どのようにしたらいいでしょうか?
補足情報(FW/ツールのバージョンなど)
python3系、VScode
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/29 00:26