This error is due to the fact that when using the cubes library of python, the depth of the level attempted to be accessed exceeds the actual existing level. depth. That is, the requested level does not exist in your cube.
There are several ways to solve this error:
Make sure that the level you requested exists in the cube. This may require checking that the hierarchy names in your code are correct, or that your data is correctly assigned to those hierarchies.
Modify the requested level depth so that it exists in the cube.
Solve this problem by updating the cubes library.
Make sure that after creating the cube, the level name in your code matches the level name in the configuration file that created the cube.
Ensure that the level name in the configuration file used when creating the cube matches the level name in the database.
Yes, here is a simple example that demonstrates how to use the cubes library and trigger a "HierarchyError" error:
import cubes # 创建一个cube cube = cubes.create_cube("sales") # 添加一个层级"date" cube.add_dimension("date", levels=["year", "month"]) # 尝试访问不存在的层级 try: cube.aggregate(drilldown=["date", "day"]) except cubes.HierarchyError as e: print(e)
In this example, we try to access the "day" level in the created cube, but this level is not defined in the cube, and a HierarchyError("Hierarchy 'date' has only 2 levels, asking for deeper level") error.
If you want to solve this error, you can change the date level to include day, or modify the drilldown parameter to the level defined in the cube.
The above is the detailed content of Solution to the error HierarchyError(\'Hierarchy \'%s\' has only %d levels, \'\'asking for deeper level\'% (self.name, len(self._levels))). For more information, please follow other related articles on the PHP Chinese website!