Python flaskでdataframe型を返す方法

実現したいこと

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 コメント