您的位置:

cubes报错SchemaError("Unknown column '%s' in table '%s' possible: %s"% (mapping.column, mapping.table, avail))怎么办

  发布时间:2023-02-02 16:30:02
报错的原因这个错误是由于在python中使用cubes库时,在表中找不到指定的列导致的。可能的原因是,列名称或表名称可能被拼写错误或者表中并没有这个列。检查是否有其他的错误,例如语法错误或者其他的类型错误。使用例子以下是一个简单的例子,展示了如何使用cubes库并遇到该错误的情况在这个例子中,我们定义了一个工作区,并在其中注册了一个默认存储库。在尝试对立方体进行聚合时,如果出现了"Unknown column"的错误,我们将打印出错误信息。

报错的原因

这个错误是由于在python中使用cubes库时,在表中找不到指定的列导致的。更具体地说,这个错误是因为在表中没有找到映射中指定的列。可能的原因是,列名称或表名称可能被拼写错误或者表中并没有这个列。

如何解决

可以从以下几个方面入手来解决这个问题:

1. 检查映射中的列名称和表名称是否被拼写错误。

2. 检查表中是否存在指定的列。

3. 如果是因为表中缺少指定的列导致的,可以在表中添加该列。

4. 检查是否有其他的错误,例如语法错误或者其他的类型错误。

5. 如果问题仍然存在,可以尝试在网上寻找解决方案或者在相关的社区中寻求帮助。

使用例子

以下是一个简单的例子,展示了如何使用cubes库并遇到该错误的情况:


from cubes import Workspace

# Create a workspace and define a cube
workspace = Workspace()
workspace.register_default_store("sql", url="sqlite:///data.sqlite")
workspace.import_model("model.json")

# Create a new cube and slice it
cube = workspace.cube("sales")
cut = cube.point_cut("product", ["book"])

# Try to aggregate the slice
try:
    result = cube.aggregate(cut, drilldown=["year"])
except Exception as e:
    if "Unknown column" in str(e):
        print("Error: ", e)
    else:
        raise e

在这个例子中,我们定义了一个工作区,并在其中注册了一个默认存储库。然后,我们导入了一个模型,并使用该模型定义了一个立方体。在尝试对立方体进行聚合时,如果出现了"Unknown column"的错误,我们将打印出错误信息。

在这个例子中,如果出现了 'year' 列不存在的错误,那么就会有一条错误信息输出:Error: SchemaError("Unknown column 'year' in table 'sales' possible: %s"% (mapping.column, mapping.table, avail))

如果在你的model.json文件中,没有定义year这一列,那么就会出现这个错误。