実現したいこと
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
import pandas as pd def main(request): lst = [[1,2,3],[3,4,5]] df = pd.DataFrame(lst) return df
#上記、デコレーター省略していますが、flask用のコードです
試したこと
データフレームではなく、CSVにして返して、クライアント側でCSVをデータフレームにすることで、とりあえずやりたいことは実現できました。
が、フロント側の手間なので、データフレーム型を直接返してくれるAPIを作りたいのですが、そのようなことができるかわからず、教えていただきたいです。
python
#クライアントから引数をうけとらない、仮のお試しコードです。このようにdataflameの代わりにCSVを返しています import pandas as pd from flask import Flask, Response, make_response, render_template def main(request): lst = [[1,2,3],[3,4,5]] df = pd.DataFrame(lst) csv = df.to_csv() response = make_response() response.data = csv response.headers['Content-Type'] = 'text/csv' return response
#上記、デコレーター省略していますが、flask用のコードです
response.headers['Content-Type']を何か特殊な形にすればdataframeでもflaskのrespons instanceとしてクライアントに返せるのでしょうか?
0 コメント