Anvil 错误:TypeError:“NoneType”对象不可下标

Posted

技术标签:

【中文标题】Anvil 错误:TypeError:“NoneType”对象不可下标【英文标题】:Anvil Error: TypeError: 'NoneType' object is not subscriptable 【发布时间】:2021-07-05 17:00:14 【问题描述】:

我正在尝试从我的数据表中的一行返回一个值,并收到以下错误:

TypeError:“NoneType”对象不可下标(键“GCWR”)

这是错误中引用的代码 sn-p...

"""
This function gets the GCWR of the truck from the 'truck_specifications' data table
Parameters: brand, model, year, engine, drive, axle
Returns: gcwr
"""
def get_gcwr(brand, model, year, engine, drive, axle):
  gcwr_row = app_tables.truck_specifications.get(Brand=brand, Model=model, Year=year, Engine_Type=engine, Drive_Type=drive, Axle_Ratio=axle)
  gcwr = gcwr_row['GCWR']
  return gcwr

一些细节:

变量“gcwr”应根据上面显示的参数从数据表中的特定行返回一个数字 这以前可行,但是当我开始向表中添加更多数据时,它现在给我上面显示的错误 我根据参数手动查看了数据表,有一行符合条件,应该返回值 数据表中列的数据类型为“数字”

这是调用上述函数的代码sn-p...

"""
This function gets the truck specifications based on the users input
Parameters: none
Returns: value (allowable trailer GVWR)
"""
@anvil.server.callable
def get_truck_specifications():
  
  # Get data from 'truck_inputs' data table
  brand = get_brand()
  model = get_model()
  year = get_year()
  engine = get_engine()
  drive = get_drive()
  axle = get_axle()
  payload = int(get_payload())
  passengers = int(get_passengers())
  cargo = int(get_cargo())
  hitch = int(get_hitch())
  
  # Get data from 'truck_specifications' data table
  gcwr = int(get_gcwr(brand, model, year, engine, drive, axle))
  gvwr_truck = int(get_gvwr_truck(brand, model, year, engine, drive, axle))
  base_weight = int(get_base_weight(gvwr_truck, payload))
  gvw = base_weight + passengers + cargo + hitch
  value = gcwr - gvw
  return value

这是显示数据表示例的屏幕截图...

'Truck Specifications' data table image

【问题讨论】:

请don’t post images of code or error messages. 文档字符串应该在 def 行之后。 gwcr_rowNone。这意味着您的查询不会返回任何结果。 【参考方案1】:

在我实施上传器后,数据表中的列似乎没有正确标记(相对于手动添加数据)。重新标注后,问题解决了。

【讨论】:

以上是关于Anvil 错误:TypeError:“NoneType”对象不可下标的主要内容,如果未能解决你的问题,请参考以下文章

python-anvil-app-server:你可以在服务器端代码上运行 python debuggor pdb 或 ipdb 吗?

tensorflow可视化工具库tensorboard使用方法详解

MySQL--用通配符进行过滤(LIKE操作符)

python fbprophet错误,TypeError:'module'对象不可调用

TypeError:车把不是函数错误

错误:TypeError:无法读取未定义的属性“图像”