Return Pandas dataframe as JSONP response in Python Flask
Solution 1
This is my solution to convert a Pandas dataframe to JSONP an return it in Flask:
from flask_jsonpify import jsonpify
df_list = df.values.tolist()
JSONP_data = jsonpify(df_list)
return JSONP_data
Depending on how you need the dataframe converted, you might need to create the list in a different way. For example like this:
df_list = merged.values.T.tolist()
Or like this:
df_list = list(df.values.flatten())
Thanks goes to the user @Barmer
Solution 2
With this method, columns of dataframe will be the keys and series of dataframe will be the values.
data_dict = dict()
for col in dataframe.columns:
data_dict[col] = dataframe[col].values.totlist()
return jsonify(data_dict)
Related videos on Youtube
sunwarr10r
Updated on June 04, 2022Comments
-
sunwarr10r over 1 year
I want to return data as
JSONP
response inFlask
.The data comes from a
Pandas dataframe
and I can return it asJSON
with the following line:json_data = dataframe.to_json(orient='values') return json_data
Works fine and I get the data, which looks like this:
[[1487310600000,1038,1042,1038,1038,-2.243,6.8933],[1487310900000,1042,1042,1038,1038,-1.3626,4.3058],[1487311200000,1042,1042,1038,1038,-1.4631,17.8684]]
But I need it as
JSONP
, so I use the following code:from flask_jsonpify import jsonpify json_data = dataframe.to_json(orient='values') return jsonpify(json_data)
And it gives me the data, but with double quotes:
"[[1487310600000,1038,1042,1038,1038,-2.243,6.8933],[1487310900000,1042,1042,1038,1038,-1.3626,4.3058],[1487311200000,1042,1042,1038,1038,-1.4631,17.8684]]"
How can I get the
JSONP
response inFlask
without double quotes? Many thanks in advance.-
Barmar over 6 yearsDon't call
to_json()
first.jsonpify()
expects its argument to be a dictionary or list, and it converts it to JSON with the JSONP wrapper. -
Barmar over 6 years
-