首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >great_expectations : expect_column_values_to_match_json_schema不接受json模式作为输入

great_expectations : expect_column_values_to_match_json_schema不接受json模式作为输入
EN

Stack Overflow用户
提问于 2021-10-14 18:01:29
回答 1查看 81关注 0票数 0

我正在尝试调用

expect_column_values_to_match_json_schema

如所述

https://legacy.docs.greatexpectations.io/en/latest/autoapi/great_expectations/dataset/dataset/index.html#great_expectations.dataset.dataset.Dataset.expect_column_values_to_match_json_schema

代码语言:javascript
复制
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')

然而,我得到了这个错误

代码语言:javascript
复制
File "/some/path/lib/python3.7/site-packages/great_expectations/dataset/pandas_dataset.py", line 1554, in matches_json_schema
    val_json = json.loads(val)
  File "/usr/lib/python3.7/json/__init__.py", line 341, in loads
    raise TypeError(f'the JSON object must be str, bytes or bytearray, '
TypeError: the JSON object must be str, bytes or bytearray, not dict

所以我试着

代码语言:javascript
复制
df_ge.expect_column_values_to_match_json_schema(column='abc',json_schema=json.loads(str(jschema)),row_condition="a=='1' and b=='2' and c=='3'",condition_parser='pandas')

但后来我得到了

代码语言:javascript
复制
df_ge.expect_column_values_to_match_json_schema(column='pg',json_schema=json.loads(str(pgschema)),row_condition="a=='1' and b=='2' and c=='3'",condition_parser='pandas')
  File "/usr/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.7/json/decoder.py", line 353, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

我如何创建一个合适的json对象来提供给这个方法?

EN

回答 1

Stack Overflow用户

发布于 2021-10-14 18:14:37

没有"JSON对象“这回事。JSON是一种序列化格式,所以唯一可以是JSON的是一个字节字符串。这样的字符串可以用与json.loads完全相反的方式创建,即json.dumps

代码语言:javascript
复制
df_ge.expect_column_values_to_match_json_schema(column='pg',json_schema=json.dumps(pgschema),row_condition="a=='1' and b=='2' and c=='3'",condition_parser='pandas')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69575380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档