You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Polars能否解析含混合数据类型数组的JSON?如何指定有效Schema?

Polars解析含混合数据类型数组的JSON方案

Polars无法直接通过pl.read_json指定Schema来解析这种数组内混合字符串与对象的JSON结构,但可以通过读取后的数据转换操作,得到你期望的结果。

实现步骤与代码示例

import json
from io import StringIO
import polars as pl

json_input = StringIO(json.dumps({"data": [["group a", {"value": 100.0}]]}))

# 读取原始JSON数据
df = pl.read_json(json_input)

# 转换为目标格式
result_df = (
    df
    .explode("data")  # 展开嵌套的数组
    .with_columns(
        pl.col("data").list.get(0).alias("group"),  # 提取数组中的字符串元素作为group列
        pl.col("data").list.get(1).struct.field("value").alias("value")  # 提取数组中对象的value字段
    )
    .drop("data")  # 删除原始data列
)

print(result_df)

代码说明

  • explode("data"):将data列中的嵌套数组展开为单行数据,方便后续提取元素
  • list.get(0):从混合数组中取出第一个字符串元素,命名为group列
  • struct.field("value"):从混合数组的第二个对象元素中,提取value字段值
  • 最后删除不再需要的原始data列,得到目标结构的DataFrame

运行上述代码后,输出结果与你期望的一致:

shape: (1, 2)
┌─────────┬───────┐
│ group   ┆ value │
│ ---     ┆ ---   │
│ str     ┆ f64   │
╞═════════╪═══════╡
│ group a ┆ 100.0 │
└─────────┴───────┘

内容的提问来源于stack exchange,提问作者mynameisgooch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 14:17:10