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

调用Great Expectations的expect_column_values_to_match_json_schema入参报错如何解决

错误根因说明

你两次报错都和你传入的json_schema参数无关,属于对方法逻辑的误解导致的问题:

  • 第一次报错:expect_column_values_to_match_json_schema方法默认会对目标列的每一个值执行json.loads()转JSON对象操作,你要校验的abc列里存储的是已经解析完成的Python dict类型,不是JSON字符串,所以执行转换时抛出类型错误。
  • 第二次报错:Python原生的str()方法转换dict时会用单引号包裹键名,不符合JSON要求的双引号规范,所以json.loads(str(jschema))会抛出格式错误,这一步操作本身完全多余,该方法的json_schema参数本身就支持直接传入Python dict类型。

解决方案

你只需要将目标列的dict值提前转为JSON字符串即可,保留你最初写的schema配置不用修改:

import json

# 先把abc列的dict转成JSON字符串,不想改原列可以复制到临时列操作
df_ge['abc'] = df_ge['abc'].apply(json.dumps)

# 直接用最初的代码调用即可,schema不需要做任何转换
jschema = {
    "type" : "object",
    "properties" : {
        "xyz" : {"type" : "string"}
    }
}
df_ge.expect_column_values_to_match_json_schema(
    column='abc',
    json_schema=jschema,
    row_condition="a=='1' and b=='2' and c=='3'",
    condition_parser='pandas'
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:18:00