如何将python pandas.Dataframe对象作为参数传递给芹菜任务?

时间:2018-01-29 22:00:25

标签: python django pandas celery

我想将pandas dataframe对象作为参数传递给celery任务。有没有办法实现这个目标?我知道数据帧对象不是JSON可序列化的,因此不能用作基于我当前设置的参数。

2 个答案:

答案 0 :(得分:4)

看起来我可以使用pandas.Dataframe.to_json()方法将给定的数据帧转换为JSON开头。将JSON值传递给celery任务后,我可以使用pd.read_json()方法取回pandas.Dataframe对象。

[1] https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_json.html

[2] https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_json.html

答案 1 :(得分:1)

to_json 对我不起作用,它自动尝试将字符串解析为日期时间,因此我的结果无效。

我正在尝试序列化和反序列化 celery 结果,所以类似。 to_dict 对我有用。

df_as_dict = df.to_dict()
df = pd.DataFrame.from_dict(df_as_dict)