2017-02-17 19 views
2

Я хочу вернуть данные как JSONP ответ в Flask.Возврат данных данных Pandas как ответ JSONP в колбе Python

Данные поступают из Pandas dataframe и я могу вернуть его в JSON с помощью следующей строки:

json_data = dataframe.to_json(orient='values') 
return json_data 

отлично работает и я получаю данные, которые выглядят следующим образом:

[[ 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]]

Но мне это нужно, как JSONP, поэтому я использую следующий код:

from flask_jsonpify import jsonpify 
json_data = dataframe.to_json(orient='values') 
return jsonpify(json_data) 

И это дает мне данные, но двойные кавычки:

«[[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]]»

Как я могу получить ответ JSONP в Flask без двойного quo TES? Большое спасибо заранее.

+0

Не называйте 'to_json()' первой. 'jsonpify()' ожидает, что его аргумент будет словарем или списком, и он преобразует его в JSON с оберткой JSONP. – Barmar

+0

Если я делаю 'jsonpify (dataframe)' Я получаю ошибку 'не JSON serializable' – saitam

+1

[конвертировать данные в список] (http://stackoverflow.com/questions/15112234/converting-dataframe-into-a-list) – Barmar

ответ

2

Это мое решение, чтобы преобразовать dataframe панд JSONP в возвращение его в термос:

from flask_jsonpify import jsonpify 
df_list = df.values.tolist() 
JSONP_data = jsonpify(df_list) 
return JSONP_data 

В зависимости от того, как вы нуждаетесь в dataframe конвертируются, что вам может понадобиться, чтобы сделать список по-другому, как я , например как этот df_list = merged.values.T.tolist() или как это df_list = list(df.values.flatten()) и т.д.

Спасибо идет к пользователю @Barmer