rust 将Polars `dataframe`序列化为`serde_json::Value`

yftpprvb  于 2023-03-30  发布在  其他
关注(0)|答案(1)|浏览(202)

在Polars中,将DataFrame序列化为json string 非常简单:JsonWriter::new(dest).finish(&df)? .
是否可以序列化为json Value -serde_json::Value-即记录的Value::Array?显然,我可以将json写入内存中的字符串,然后将其反序列化为serde_json::Value。但我想知道是否存在从DataFrameserde_json::Value的直接路径。
这大概相当于pandas df.to_dict(orient="records")

tktrz96b

tktrz96b1#

您需要添加serde特性。

cargo add polars --features serde
use polars::prelude::*;

fn main() {
    let df = df! {
        "a" => [1,2,3,4,5],
    }
    .unwrap();
    let df_json = serde_json::to_value(&df).unwrap();
    println!("df_json {df_json}");
}

注意,Polars实现了自定义的反序列化,它可能与提到的pandas不一致。
上面的JSON结果:

{
  "columns": [
    {
      "datatype": "Int32",
      "name": "a",
      "values": [1,2,3,4,5]
    }
  ]
}

相关问题