実現したいこと
Python3とflaskを使って、簡易的なバックエンドAPIをつくっています。
やりたいことは、フロント側でFlaskのエンドポイントにある引数を渡すと、FlaskのAPIがその引数に基づいた処理を行い、フロント側にデータフレーム型を返したいです
発生している問題・エラーメッセージ
d" TypeError: The view function did not return a valid response. The return type must be a string, dict, tuple, Response instance, or WSGI callable, but it was a DataFrame.
当然ですが、dataframe型を直接返却することはできないのでタイプエラーが出ます。
該当のソースコード
python
1import pandas as pd 2 3def main(request): 4 lst = [[1,2,3],[3,4,5]] 5 df = pd.DataFrame(lst) 6 return df
#上記、デコレーター省略していますが、flask用のコードです
試したこと
データフレームではなく、CSVにして返して、クライアント側でCSVをデータフレームにすることで、とりあえずやりたいことは実現できました。
が、フロント側の手間なので、データフレーム型を直接返してくれるAPIを作りたいのですが、そのようなことができるかわからず、教えていただきたいです。
python
1#クライアントから引数をうけとらない、仮のお試しコードです。このようにdataflameの代わりにCSVを返しています 2 3import pandas as pd 4from flask import Flask, Response, make_response, render_template 5 6def main(request): 7 lst = [[1,2,3],[3,4,5]] 8 df = pd.DataFrame(lst) 9 csv = df.to_csv() 10 response = make_response() 11 response.data = csv 12 response.headers['Content-Type'] = 'text/csv' 13 return response 14
#上記、デコレーター省略していますが、flask用のコードです
response.headers['Content-Type']を何か特殊な形にすればdataframeでもflaskのrespons instanceとしてクライアントに返せるのでしょうか?
回答1件
あなたの回答
tips
プレビュー